Skip to content

Commit 9e1abfe

Browse files
committed
added missing flags
added: - compiler standard - optimization flags - warning flags - different other flags
1 parent 7e7aa72 commit 9e1abfe

File tree

2 files changed

+110
-85
lines changed

2 files changed

+110
-85
lines changed

tools/export/mcuxpresso/.cproject.tmpl

Lines changed: 101 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,13 @@
2727
<option id="com.crt.advproject.cpp.specs.{{u.id}}" name="Specs" superClass="com.crt.advproject.cpp.specs" value="com.crt.advproject.cpp.specs.newlibnano" valueType="enumerated"/>
2828
<option id="com.crt.advproject.cpp.arch.{{u.id}}" name="Architecture" superClass="com.crt.advproject.cpp.arch" value="com.crt.advproject.cpp.target.{{opts['common']['arm.target.family_nxp']}}" valueType="enumerated"/>
2929
{% if opts['common']['optimization.level'] != '' %}
30-
<option id="com.crt.advproject.cpp.exe.{{opts['id']}}.option.optimization.level.{{u.id}}" name="Optimization Level" superClass="com.crt.advproject.cpp.exe.{{opts['id']}}.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.{{opts['common']['optimization.level']}}" valueType="enumerated"/>
30+
<option id="com.crt.advproject.cpp.exe.{{opts['id']}}.option.optimization.level.{{u.id}}" name="Optimization Level" superClass="com.crt.advproject.cpp.exe.{{opts['id']}}.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.{{opts['common']['optimization.level']}}" valueType="enumerated"/>
3131
{% endif %}
32+
<option id="gnu.cpp.compiler.option.optimization.flags.{{u.id}}" superClass="gnu.cpp.compiler.option.optimization.flags" useByScannerDiscovery="false" value="{{opts['cpp']['otheroptimizations']}} {{opts['common']['optimization.other']}}" valueType="string"/>
3233
{% if opts['cpp']['compiler.std'] %}
33-
<option id="com.crt.advproject.cpp.misc.dialect.{{u.id}}" name="Language standard" superClass="com.crt.advproject.cpp.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.cppdefault" valueType="enumerated"/>
34+
<option id="com.crt.advproject.cpp.misc.dialect.{{u.id}}" name="Language standard" superClass="com.crt.advproject.cpp.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.{{opts['cpp']['compiler.std']}}" valueType="enumerated"/>
3435
{% endif %}
36+
3537
<option id="gnu.cpp.compiler.option.preprocessor.def.{{u.id}}" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
3638
{% for s in opts['cpp']['defines'] %}
3739
<listOptionValue builtIn="false" value="{{s|replace("\"", "\\\"")|escape}}"/>
@@ -47,13 +49,46 @@
4749
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/{{file}}&quot;"/>
4850
{% endfor %}
4951
</option>
50-
<option id="gnu.cpp.compiler.option.other.other.{{u.id}}" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" value="-c -fmessage-length=0 -fno-exceptions -fno-builtin -ffunction-sections -fdata-sections -funsigned-char -fno-delete-null-pointer-checks -fomit-frame-pointer" valueType="string"/>
51-
{% if opts['cpp']['otheroptimizations'] != '' %}
52-
<option id="gnu.cpp.compiler.option.optimization.flags.{{u.id}}" superClass="gnu.cpp.compiler.option.optimization.flags" useByScannerDiscovery="false" value="{{opts['cpp']['otheroptimizations']}}" valueType="string"/>
53-
{% endif %}
52+
53+
{% if opts['common']['warnings.syntaxonly'] %}
54+
<option id="gnu.cpp.compiler.option.warnings.syntax.{{u.id}}" superClass="gnu.cpp.compiler.option.warnings.syntax" value="true" valueType="boolean"/>
55+
{% endif %}
56+
{% if opts['common']['warnings.pedantic'] %}
57+
<option id="gnu.cpp.compiler.option.warnings.pedantic.{{u.id}}" superClass="gnu.cpp.compiler.option.warnings.pedantic" value="true" valueType="boolean"/>
58+
{% endif %}
59+
{% if opts['common']['warnings.pedanticerrors'] %}
60+
<option id="gnu.cpp.compiler.option.warnings.pedantic.error.{{u.id}}" superClass="gnu.cpp.compiler.option.warnings.pedantic.error" value="true" valueType="boolean"/>
61+
{% endif %}
62+
{% if opts['common']['warnings.nowarn'] %}
63+
<option id="gnu.cpp.compiler.option.warnings.nowarn.{{u.id}}" superClass="gnu.cpp.compiler.option.warnings.nowarn" value="true" valueType="boolean"/>
64+
{% endif %}
65+
{% if opts['common']['warnings.allwarn'] %}
66+
<option id="gnu.cpp.compiler.option.warnings.allwarn.{{u.id}}" name="Enable all common warnings (-Wall)" superClass="gnu.cpp.compiler.option.warnings.allwarn" value="true" valueType="boolean"/>
67+
{% endif %}
68+
{% if opts['common']['warnings.extrawarn'] %}
69+
<option id="gnu.cpp.compiler.option.warnings.extrawarn.{{u.id}}" name="Enable extra warnings (-Wextra)" superClass="gnu.cpp.compiler.option.warnings.extrawarn" value="true" valueType="boolean"/>
70+
{% endif %}
71+
{% if opts['common']['warnings.toerrors'] %}
72+
<option id="gnu.cpp.compiler.option.warnings.toerrors.{{u.id}}" superClass="gnu.cpp.compiler.option.warnings.toerrors" value="true" valueType="boolean"/>
73+
{% endif %}
74+
{% if opts['common']['warnings.conversion'] %}
75+
<option id="gnu.cpp.compiler.option.warnings.wconversion.{{u.id}}" name="Warn on implicit conversions (-Wconversion)" superClass="gnu.cpp.compiler.option.warnings.wconversion" value="true" valueType="boolean"/>
76+
{% endif %}
77+
78+
{% if opts['common']['optimization.lto'] %}
79+
<option id="com.crt.advproject.cpp.lto.{{u.id}}" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.cpp.lto" useByScannerDiscovery="false" value="true" valueType="boolean"/>
80+
{% endif %}
81+
{% if opts['common']['optimization.lto_objects'] %}
82+
<option id="com.crt.advproject.cpp.lto.fat.{{u.id}}" name="Fat lto objects (-ffat-lto-objects)" superClass="com.crt.advproject.cpp.lto.fat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
83+
{% endif %}
84+
85+
{% if opts['cpp']['verbose'] %}
86+
<option id="gnu.cpp.compiler.option.other.verbose.{{u.id}}" name="Verbose (-v)" superClass="gnu.cpp.compiler.option.other.verbose" useByScannerDiscovery="false" value="true" valueType="boolean"/>
87+
{% endif %}
5488
{% if opts['common']['arm.target.fpu.unit_nxp'] %}
5589
<option id="com.crt.advproject.cpp.fpu.{{u.id}}" name="Floating point" superClass="com.crt.advproject.cpp.fpu" useByScannerDiscovery="false" value="com.crt.advproject.cpp.fpu.{{opts['common']['arm.target.fpu.unit_nxp']}}" valueType="enumerated"/>
5690
{% endif %}
91+
<option id="gnu.cpp.compiler.option.other.other.{{u.id}}" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="false" value="-c {{opts['cpp']['other']}} {{opts['common']['warnings.other']}}" valueType="string"/>
5792
<inputType id="com.crt.advproject.compiler.cpp.input.{{opts['uid']['tool_cpp_compiler_input']}}" superClass="com.crt.advproject.compiler.cpp.input"/>
5893
</tool>
5994

@@ -64,8 +99,10 @@
6499
{% if opts['common']['optimization.level'] != '' %}
65100
<option id="com.crt.advproject.gcc.exe.{{opts['id']}}.option.optimization.level.{{u.id}}" name="Optimization Level" superClass="com.crt.advproject.gcc.exe.{{opts['id']}}.option.optimization.level" useByScannerDiscovery="false" value="gnu.c.optimization.level.{{opts['common']['optimization.level']}}" valueType="enumerated"/>
66101
{% endif %}
102+
<option id="gnu.c.compiler.option.optimization.flags.{{u.id}}" superClass="gnu.c.compiler.option.optimization.flags" useByScannerDiscovery="false" value="{{opts['c']['otheroptimizations']}} {{opts['common']['optimization.other']}}" valueType="string"/>
103+
67104
{% if opts['c']['compiler.std'] %}
68-
<option id="com.crt.advproject.gcc.misc.dialect.{{u.id}}" name="Language standard" superClass="com.crt.advproject.gcc.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.default" valueType="enumerated"/>
105+
<option id="com.crt.advproject.c.misc.dialect.{{u.id}}" name="Language standard" superClass="com.crt.advproject.c.misc.dialect" useByScannerDiscovery="true" value="com.crt.advproject.misc.dialect.{{opts['c']['compiler.std']}}" valueType="enumerated"/>
69106
{% endif %}
70107
<option id="gnu.c.compiler.option.preprocessor.def.symbols.{{u.id}}" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols">
71108
{% for s in opts['c']['defines'] %}
@@ -82,10 +119,46 @@
82119
<listOptionValue builtIn="false" value="&quot;${ProjDirPath}/{{file}}&quot;"/>
83120
{% endfor %}
84121
</option>
85-
<option id="gnu.c.compiler.option.misc.other.{{u.id}}" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-exceptions -fno-builtin -ffunction-sections -fdata-sections -funsigned-char -fno-delete-null-pointer-checks -fomit-frame-pointer" valueType="string"/>
122+
123+
{% if opts['common']['warnings.syntaxonly'] %}
124+
<option id="gnu.c.compiler.option.warnings.syntax.{{u.id}}" superClass="gnu.c.compiler.option.warnings.syntax" value="true" valueType="boolean"/>
125+
{% endif %}
126+
{% if opts['common']['warnings.pedantic'] %}
127+
<option id="gnu.c.compiler.option.warnings.pedantic.{{u.id}}" superClass="gnu.c.compiler.option.warnings.pedantic" value="true" valueType="boolean"/>
128+
{% endif %}
129+
{% if opts['common']['warnings.pedanticerrors'] %}
130+
<option id="gnu.c.compiler.option.warnings.pedantic.error.{{u.id}}" superClass="gnu.c.compiler.option.warnings.pedantic.error" value="true" valueType="boolean"/>
131+
{% endif %}
132+
{% if opts['common']['warnings.nowarn'] %}
133+
<option id="gnu.c.compiler.option.warnings.nowarn.{{u.id}}" superClass="gnu.c.compiler.option.warnings.nowarn" value="true" valueType="boolean"/>
134+
{% endif %}
135+
{% if opts['common']['warnings.allwarn'] %}
136+
<option id="gnu.c.compiler.option.warnings.allwarn.{{u.id}}" name="Enable all common warnings (-Wall)" superClass="gnu.c.compiler.option.warnings.allwarn" value="true" valueType="boolean"/>
137+
{% endif %}
138+
{% if opts['common']['warnings.extrawarn'] %}
139+
<option id="gnu.c.compiler.option.warnings.extrawarn.{{u.id}}" name="Enable extra warnings (-Wextra)" superClass="gnu.c.compiler.option.warnings.extrawarn" value="true" valueType="boolean"/>
140+
{% endif %}
141+
{% if opts['common']['warnings.toerrors'] %}
142+
<option id="gnu.c.compiler.option.warnings.toerrors.{{u.id}}" superClass="gnu.c.compiler.option.warnings.toerrors" value="true" valueType="boolean"/>
143+
{% endif %}
144+
{% if opts['common']['warnings.conversion'] %}
145+
<option id="gnu.c.compiler.option.warnings.wconversion.{{u.id}}" name="Warn on implicit conversions (-Wconversion)" superClass="gnu.c.compiler.option.warnings.wconversion" value="true" valueType="boolean"/>
146+
{% endif %}
147+
{% if opts['c']['verbose'] %}
148+
<option id="gnu.c.compiler.option.misc.verbose.{{u.id}}" name="Verbose (-v)" superClass="gnu.c.compiler.option.misc.verbose" useByScannerDiscovery="false" value="true" valueType="boolean"/>
149+
{% endif %}
86150
{% if opts['common']['arm.target.fpu.unit_nxp'] %}
87151
<option id="com.crt.advproject.gcc.fpu.{{u.id}}" name="Floating point" superClass="com.crt.advproject.gcc.fpu" useByScannerDiscovery="false" value="com.crt.advproject.gcc.fpu.{{opts['common']['arm.target.fpu.unit_nxp']}}" valueType="enumerated"/>
88152
{% endif %}
153+
154+
{% if opts['common']['optimization.lto'] %}
155+
<option id="com.crt.advproject.gcc.lto.{{u.id}}" name="Enable Link-time optimization (-flto)" superClass="com.crt.advproject.gcc.lto" useByScannerDiscovery="false" value="true" valueType="boolean"/>
156+
{% endif %}
157+
{% if opts['common']['optimization.lto_objects'] %}
158+
<option id="com.crt.advproject.gcc.lto.fat.{{u.id}}" name="Fat lto objects (-ffat-lto-objects)" superClass="com.crt.advproject.gcc.lto.fat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
159+
{% endif %}
160+
161+
<option id="gnu.c.compiler.option.misc.other.{{u.id}}" superClass="gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-c {{opts['c']['other']}} {{opts['common']['warnings.other']}}" valueType="string"/>
89162
<inputType id="com.crt.advproject.compiler.input.{{opts['uid']['tool_c_compiler']}}" superClass="com.crt.advproject.compiler.input"/>
90163
</tool>
91164

@@ -101,6 +174,10 @@
101174
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.{{u.id}}" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
102175
{% if opts['common']['arm.target.fpu.unit_nxp'] %}
103176
<option id="com.crt.advproject.gas.fpu.{{u.id}}" name="Floating point" superClass="com.crt.advproject.gas.fpu" useByScannerDiscovery="false" value="com.crt.advproject.gas.fpu.{{opts['common']['arm.target.fpu.unit_nxp']}}" valueType="enumerated"/>
177+
{% endif %}
178+
<option id="gnu.both.asm.option.flags.crt.{{u.id}}" superClass="gnu.both.asm.option.flags.crt" useByScannerDiscovery="false" value="-c {{opts['as']['other']}}" valueType="string"/>
179+
{% if opts['as']['verbose'] %}
180+
<option id="gnu.both.asm.option.version.{{u.id}}" superClass="gnu.both.asm.option.version" useByScannerDiscovery="false" value="true" valueType="boolean"/>
104181
{% endif %}
105182
<inputType id="com.crt.advproject.assembler.input.{{u.id}}" name="Additional Assembly Source Files" superClass="com.crt.advproject.assembler.input"/>
106183
</tool>
@@ -133,15 +210,30 @@
133210
<option id="gnu.cpp.link.option.other.{{u.id}}" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other" useByScannerDiscovery="false" valueType="stringList">
134211
<listOptionValue builtIn="false" value="-Map=&quot;${BuildArtifactFileBaseName}.map&quot;"/>
135212
<listOptionValue builtIn="false" value="-print-memory-usage"/>
136-
<listOptionValue builtIn="false" value="--gc-sections"/>
213+
{% if opts['ld']['gcsections'] %}
214+
<listOptionValue builtIn="false" value="--gc-sections"/>
215+
{% endif %}
137216
{% for opt in opts['ld']['flags'] %}
138217
<listOptionValue builtIn="false" value="{{opt}}"/>
139218
{% endfor %}
140219
</option>
141220

221+
{% if opts['ld']['nostart'] %}
222+
<option id="gnu.cpp.link.option.nostart.{{u.id}}" name="Do not use standard start files (-nostartfiles)" superClass="gnu.cpp.link.option.nostart" useByScannerDiscovery="false" value="true" valueType="boolean"/>
223+
{% endif %}
224+
{% if opts['ld']['nodeflibs'] %}
225+
<option id="gnu.cpp.link.option.nodeflibs.{{u.id}}" name="Do not use default libraries (-nodefaultlibs)" superClass="gnu.cpp.link.option.nodeflibs" useByScannerDiscovery="false" value="true" valueType="boolean"/>
226+
{% endif %}
227+
{% if opts['ld']['nostdlibs'] %}
228+
<option id="gnu.cpp.link.option.nostdlibs.{{u.id}}" name="No startup or default libs (-nostdlib)" superClass="gnu.cpp.link.option.nostdlibs" useByScannerDiscovery="false" value="true" valueType="boolean"/>
229+
{% endif %}
142230
{% if opts['ld']['other'] != '' %}
143231
<option id="gnu.cpp.link.option.flags.{{u.id}}" superClass="gnu.cpp.link.option.flags" useByScannerDiscovery="false" value="{{opts['ld']['other']}}" valueType="string"/>
144232
{% endif %}
233+
234+
{% if opts['common']['optimization.lto'] %}
235+
<option id="com.crt.advproject.link.cpp.lto.{{u.id}}" superClass="com.crt.advproject.link.cpp.lto" useByScannerDiscovery="false" value="true" valueType="boolean"/>
236+
{% endif %}
145237

146238
<option id="com.crt.advproject.link.cpp.script.{{u.id}}" name="Linker script" superClass="com.crt.advproject.link.cpp.script" useByScannerDiscovery="false" value="${ProjDirPath}/{{opts['ld']['script']}}" valueType="string"/>
147239

0 commit comments

Comments
 (0)