mirror of https://github.com/ARMmbed/mbed-os.git
QtCreator exporter: switch to jinja-based templates
this also makes so that the export directory setting is honoredpull/4278/head
parent
e496a637c3
commit
c2f5aa19a7
|
@ -30,32 +30,36 @@ class QtCreator(Exporter):
|
||||||
def generate(self):
|
def generate(self):
|
||||||
self.resources.win_to_unix()
|
self.resources.win_to_unix()
|
||||||
|
|
||||||
with open("%s.creator" % self.project_name, "w") as fd:
|
defines = [] # list of tuples ('D'/'U', [key, value]) (value is optional)
|
||||||
fd.write("[General]\n")
|
forced_includes = [] # list of strings
|
||||||
|
sources = [] # list of strings
|
||||||
|
include_paths = [] # list of strings
|
||||||
|
|
||||||
next_is_include = False
|
next_is_include = False
|
||||||
includes = []
|
for f in self.flags['c_flags'] + self.flags['cxx_flags']:
|
||||||
with open("%s.config" % self.project_name, "w") as fd:
|
f=f.strip()
|
||||||
for f in self.flags['c_flags'] + self.flags['cxx_flags']:
|
if next_is_include:
|
||||||
f=f.strip()
|
forced_includes.append(f)
|
||||||
if next_is_include:
|
next_is_include = False
|
||||||
includes.append(f)
|
continue
|
||||||
next_is_include = False
|
if f.startswith('-D'):
|
||||||
continue
|
defines.append(('D', f[2:].split('=', 1)))
|
||||||
if f.startswith('-D'):
|
elif f.startswith('-U'):
|
||||||
fd.write("#define %s\n" % (f[2:].replace('=', ' ')))
|
defines.append(('U', [f[2:]]))
|
||||||
elif f.startswith('-U'):
|
elif f == "-include":
|
||||||
fd.write("#undef %s\n" % f[2:])
|
next_is_include = True
|
||||||
elif f == "-include":
|
|
||||||
next_is_include = True
|
|
||||||
for i in includes:
|
|
||||||
fd.write("#include \"%s\"\n" % i)
|
|
||||||
|
|
||||||
with open("%s.files" % self.project_name, "w") as fd:
|
for r_type in ['headers', 'c_sources', 's_sources', 'cpp_sources']:
|
||||||
for r_type in ['headers', 'c_sources', 's_sources', 'cpp_sources']:
|
sources.extend(getattr(self.resources, r_type))
|
||||||
for f in getattr(self.resources, r_type):
|
|
||||||
fd.write(f + "\n")
|
|
||||||
|
|
||||||
with open("%s.includes" % self.project_name, "w") as fd:
|
include_paths = self.resources.inc_dirs
|
||||||
for i in self.resources.inc_dirs:
|
|
||||||
fd.write(i + "\n")
|
ctx = {
|
||||||
|
'defines': defines,
|
||||||
|
'forced_includes': forced_includes,
|
||||||
|
'sources': sources,
|
||||||
|
'include_paths': self.resources.inc_dirs
|
||||||
|
}
|
||||||
|
|
||||||
|
for ext in ['creator', 'files', 'includes', 'config']:
|
||||||
|
self.gen_file('qtcreator/%s.tmpl' % ext, ctx, "%s.%s" % (self.project_name, ext))
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{% for d in defines -%}
|
||||||
|
{% if d[0] == 'D' %}#define {% else %}#undef{% endif %} {{ d[1]|join(' ')}}
|
||||||
|
{% endfor %}
|
||||||
|
{% for i in forced_includes -%}
|
||||||
|
#include "{{i}}"
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1 @@
|
||||||
|
[General]
|
|
@ -0,0 +1,3 @@
|
||||||
|
{% for s in sources -%}
|
||||||
|
{{s}}
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{% for i in include_paths -%}
|
||||||
|
{{i}}
|
||||||
|
{% endfor %}
|
Loading…
Reference in New Issue