mirror of https://github.com/ARMmbed/mbed-os.git
all options parsed, build functional
parent
8266a76c22
commit
cc3fe4c73e
|
@ -19,24 +19,128 @@
|
||||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.{{debug_config_uid}}" name="Debug" parent="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug">
|
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.{{debug_config_uid}}" name="Debug" parent="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug">
|
||||||
<folderInfo id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.{{debug_config_uid}}." name="/" resourcePath="">
|
<folderInfo id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.debug.{{debug_config_uid}}." name="/" resourcePath="">
|
||||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.debug.{{u.id}}" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.debug">
|
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.debug.{{u.id}}" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.debug">
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.{{u.id}}" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.{{options['common']['arm.target.family']}}" valueType="enumerated"/>
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.arch.{{options['common']['arm.target.arch']}}" valueType="enumerated"/>
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.{{u.id}}" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.{{options['common']['arm.target.instructionset']}}" valueType="enumerated"/>
|
||||||
|
{% if options['common']['arm.target.thumbinterwork'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['arm.target.endianness'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.{{options['common']['arm.target.endianness']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['arm.target.fpu.abi'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.{{u.id}}" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.{{options['common']['arm.target.fpu.abi']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['arm.target.fpu.unit'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.{{u.id}}" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.{{options['common']['arm.target.fpu.unit']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['arm.target.unalignedaccess'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.{{options['common']['arm.target.unalignedaccess']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.{{u.id}}" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.debug" valueType="enumerated"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.{{u.id}}" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.debug" valueType="enumerated"/>
|
||||||
|
{% if options['common']['optimization.messagelength'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.{{u.id}}" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.{{u.id}}" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.signedchar'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.{{u.id}}" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.{{u.id}}" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.functionsections'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.{{u.id}}" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.{{u.id}}" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.datasections'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.{{u.id}}" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.{{u.id}}" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.nocommon'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.noinlinefunctions'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.freestanding'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.nobuiltin'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.spconstant'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.PIC'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants.{{u.id}}" name="Disable loop invariant move (-fno-move-loop-invariants)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants" value="true" valueType="boolean"/>
|
||||||
|
{% if options['common']['optimization.other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other" value="{{options['common']['optimization.other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['common']['warnings.syntaxonly'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.pedantic'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.pedanticerrors'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.nowarn'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.unused'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.{{u.id}}" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.uninitialized'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.{{u.id}}" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.allwarn'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.{{u.id}}" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.extrawarn'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.{{u.id}}" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.missingdeclaration'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.{{u.id}}" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.conversion'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.{{u.id}}" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.pointerarith'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.{{u.id}}" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.padded'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded.{{u.id}}" name="Warn if padding is included (-Wpadded)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.shadow'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.{{u.id}}" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.logicalop'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.{{u.id}}" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.agreggatereturn'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.{{u.id}}" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.floatequal'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.{{u.id}}" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.toerrors'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['common']['warnings.other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other" value="{{options['common']['warnings.other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.{{u.id}}" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.max" valueType="enumerated"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.{{u.id}}" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.max" valueType="enumerated"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.{{u.id}}" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.{{u.id}}" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.{{u.id}}" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.{{target_mcpu}}" valueType="enumerated"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.{{u.id}}" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.{{target_fpu_abi}}" valueType="enumerated"/>
|
{% if options['common']['debugging.prof'] %}
|
||||||
{% if target_fpu_unit %}
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.{{u.id}}" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.{{target_fpu_unit}}" valueType="enumerated"/>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.{{u.id}}" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn" value="true" valueType="boolean"/>
|
{% if options['common']['debugging.gprof'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.{{u.id}}" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants.{{u.id}}" name="Disable loop invariant move (-fno-move-loop-invariants)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants" value="true" valueType="boolean"/>
|
{% endif %}
|
||||||
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.{{u.id}}" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.{{u.id}}" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.{{u.id}}" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.{{u.id}}" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.{{u.id}}" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.{{u.id}}" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.{{u.id}}" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.{{u.id}}" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
||||||
|
@ -51,93 +155,205 @@
|
||||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.{{u.id}}" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.{{u.id}}" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||||
<builder buildPath="${workspace_loc:/{{name}}}/Debug" id="ilg.gnuarmeclipse.managedbuild.cross.builder.{{u.id}}" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
|
<builder buildPath="${workspace_loc:/{{name}}}/Debug" id="ilg.gnuarmeclipse.managedbuild.cross.builder.{{u.id}}" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.{{u.id}}" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.{{u.id}}" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
||||||
|
{% if options['as']['usepreprocessor'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.{{u.id}}" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.{{u.id}}" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['as']['nostdinc'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.nostdinc.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.nostdinc" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
|
||||||
{% for path in include_paths %}
|
{% for path in options['common']['include_paths'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
||||||
<listOptionValue builtIn="false" value="DEBUG"/>
|
<listOptionValue builtIn="false" value="DEBUG"/>
|
||||||
{% for s in asm_defines %}
|
{% for s in options['as']['defines'] %}
|
||||||
<listOptionValue builtIn="false" value="{{s}}"/>
|
<listOptionValue builtIn="false" value="{{s}}"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.files.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.files.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
||||||
<listOptionValue builtIn="false" value="mbed_config.h"/>
|
{% for file in options['common']['include_files'] %}
|
||||||
|
<listOptionValue builtIn="false" value=""{{file}}""/>
|
||||||
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
|
{% if options['as']['otherwarnings'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.otherwarnings.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.otherwarnings" value="{{options['as']['otherwarnings']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['as']['verbose'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.verbose.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.verbose" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['as']['other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.other.{{u.id}}" name="Other assembler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.other" value="{{options['as']['other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.{{debug_tool_c_compiler_uid}}" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.{{debug_tool_c_compiler_uid}}" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
||||||
|
{% if options['c']['nostdinc'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.nostdinc.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.nostdinc" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||||
{% for path in include_paths %}
|
{% for path in options['common']['include_paths'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
||||||
<listOptionValue builtIn="false" value="DEBUG"/>
|
<listOptionValue builtIn="false" value="DEBUG"/>
|
||||||
{% for s in c_defines %}
|
{% for s in options['c']['defines'] %}
|
||||||
<listOptionValue builtIn="false" value="{{s}}"/>
|
<listOptionValue builtIn="false" value="{{s}}"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.files.{{u.id}}" name="Include files (-include)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.files.{{u.id}}" name="Include files (-include)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
||||||
<listOptionValue builtIn="false" value="mbed_config.h"/>
|
{% for file in options['common']['include_files'] %}
|
||||||
|
<listOptionValue builtIn="false" value=""{{file}}""/>
|
||||||
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
|
{% if options['c']['compiler.std'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std" value="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.{{options['c']['compiler.std']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['otheroptimizations'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otheroptimizations.{{u.id}}" name="Other optimization flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otheroptimizations" useByScannerDiscovery="true" value="{{options['c']['otheroptimizations']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['warnings.missingprototypes'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.missingprototypes.{{u.id}}" name="Warn if a global function has no prototype (-Wmissing-prototypes)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.missingprototypes" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['warnings.strictprototypes'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.strictprototypes.{{u.id}}" name="Warn if a function has no arg type (-Wstrict-prototypes)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.strictprototypes" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['warnings.badfunctioncast'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.badfunctioncast.{{u.id}}" name="Warn if wrong cast (-Wbad-function-cast)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.badfunctioncast" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['otherwarnings'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otherwarnings.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otherwarnings" value="{{options['c']['otherwarnings']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['verbose'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.verbose.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.verbose" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other" value="{{options['c']['other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.{{debug_tool_c_compiler_input_uid}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.{{debug_tool_c_compiler_input_uid}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.{{debug_tool_cpp_compiler_uid}}" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.{{debug_tool_cpp_compiler_uid}}" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
||||||
|
{% if options['cpp']['nostdinc'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nostdinc.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nostdinc" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['nostdincpp'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nostdincpp.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nostdincpp" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||||
{% for path in include_paths %}
|
{% for path in options['common']['include_paths'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.noexceptions.{{u.id}}" name="Do not use exceptions (-fno-exceptions)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.noexceptions" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nortti.{{u.id}}" name="Do not use RTTI (-fno-rtti)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nortti" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nousecxaatexit.{{u.id}}" name="Do not use _cxa_atexit() (-fno-use-cxa-atexit)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nousecxaatexit" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nothreadsafestatics.{{u.id}}" name="Do not use thread-safe statics (-fno-threadsafe-statics)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nothreadsafestatics" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
||||||
<listOptionValue builtIn="false" value="DEBUG"/>
|
<listOptionValue builtIn="false" value="DEBUG"/>
|
||||||
{% for s in cpp_defines %}
|
{% for s in options['cpp']['defines'] %}
|
||||||
<listOptionValue builtIn="false" value="{{s}}"/>
|
<listOptionValue builtIn="false" value="{{s}}"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.files.{{u.id}}" name="Include files (-include)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.files.{{u.id}}" name="Include files (-include)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
||||||
<listOptionValue builtIn="false" value="mbed_config.h"/>
|
{% for file in options['common']['include_files'] %}
|
||||||
|
<listOptionValue builtIn="false" value=""{{file}}""/>
|
||||||
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
|
{% if options['cpp']['compiler.std'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.std.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.std" value="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.std.{{options['cpp']['compiler.std']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['cpp']['optimization.noexceptions'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.noexceptions.{{u.id}}" name="Do not use exceptions (-fno-exceptions)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.noexceptions" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['optimization.nortti'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nortti.{{u.id}}" name="Do not use RTTI (-fno-rtti)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nortti" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['optimization.nousecxaatexit'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nousecxaatexit.{{u.id}}" name="Do not use _cxa_atexit() (-fno-use-cxa-atexit)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nousecxaatexit" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['optimization.nothreadsafestatics'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nothreadsafestatics.{{u.id}}" name="Do not use thread-safe statics (-fno-threadsafe-statics)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nothreadsafestatics" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['otheroptimizations'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.otheroptimizations.{{u.id}}" name="Other optimization flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.otheroptimizations" useByScannerDiscovery="true" value="{{options['cpp']['otheroptimizations']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['cpp']['warnabi'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warnabi.{{u.id}}" name="Warn on ABI violations (-Wabi)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warnabi" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.ctordtorprivacy'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.ctordtorprivacy.{{u.id}}" name="Warn on class privacy (-Wctor-dtor-privacy)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.ctordtorprivacy" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.noexcept'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.noexcept.{{u.id}}" name="Warn on no-except expressions (-Wnoexcept)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.noexcept" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.nonvirtualdtor'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.nonvirtualdtor.{{u.id}}" name="Warn on virtual destructors (-Wnon-virtual-dtor)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.nonvirtualdtor" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.strictnullsentinel'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.strictnullsentinel.{{u.id}}" name="Warn on uncast NULL (-Wstrict-null-sentinel)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.strictnullsentinel" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.signpromo'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.signpromo.{{u.id}}" name="Warn on sign promotion (-Wsign-promo)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.signpromo" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warneffc'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warneffc.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warneffc" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['otherwarnings'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.otherwarnings.{{u.id}}" name="Other warning flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.otherwarnings" useByScannerDiscovery="true" value="{{options['cpp']['otherwarnings']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['cpp']['verbose'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.verbose.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.verbose" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other" value="{{options['cpp']['other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.{{debug_tool_cpp_compiler_input_uid}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.{{debug_tool_cpp_compiler_input_uid}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.{{u.id}}" name="Cross ARM C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker">
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections.{{u.id}}" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.paths.{{u.id}}" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.paths" valueType="libPaths">
|
|
||||||
</option>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.scriptfile.{{u.id}}" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.scriptfile" valueType="stringList">
|
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{linker_script}}""/>
|
|
||||||
</option>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.nostart.{{u.id}}" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.nostart" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.usenewlibnano.{{u.id}}" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.usenewlibnano" value="true" valueType="boolean"/>
|
|
||||||
</tool>
|
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.{{u.id}}" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.{{u.id}}" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.{{u.id}}" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile.{{u.id}}" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile" valueType="stringList">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile.{{u.id}}" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile" valueType="stringList">
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{linker_script}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{options['ld']['script']}}""/>
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths.{{u.id}}" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths" valueType="libPaths">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths.{{u.id}}" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths" valueType="libPaths">
|
||||||
{% for path in library_paths %}
|
{% for path in options['ld']['library_paths'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs" valueType="libs">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs" valueType="libs">
|
||||||
{% for lib in libraries %}
|
{% for lib in options['ld']['user_libraries'] %}
|
||||||
|
<listOptionValue builtIn="false" value="{{lib}}"/>
|
||||||
|
{% endfor %}
|
||||||
|
{% for lib in options['ld']['system_libraries'] %}
|
||||||
<listOptionValue builtIn="false" value="{{lib}}"/>
|
<listOptionValue builtIn="false" value="{{lib}}"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.otherobjs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.otherobjs" valueType="userObjs">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.otherobjs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.otherobjs" valueType="userObjs">
|
||||||
{% for path in object_files %}
|
{% for path in options['ld']['object_files'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
|
{% if options['ld']['gcsections'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.{{u.id}}" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['ld']['nostart'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart.{{u.id}}" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart.{{u.id}}" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano.{{u.id}}" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano" value="true" valueType="boolean"/>
|
{% endif %}
|
||||||
|
{% if options['ld']['nodeflibs'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nodeflibs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nodeflibs" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['ld']['nostdlibs'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostdlibs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostdlibs" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.flags.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.flags" valueType="stringList">
|
||||||
|
{% for opt in options['ld']['flags'] %}
|
||||||
|
<listOptionValue builtIn="false" value="{{opt}}"/>
|
||||||
|
{% endfor %}
|
||||||
|
</option>
|
||||||
|
|
||||||
|
{% if options['ld']['other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other" value="{{options['ld']['other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
||||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||||
|
@ -158,7 +374,7 @@
|
||||||
</toolChain>
|
</toolChain>
|
||||||
</folderInfo>
|
</folderInfo>
|
||||||
<sourceEntries>
|
<sourceEntries>
|
||||||
<entry excluding="{{excluded_folders}}" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
<entry excluding="{{options['common']['excluded_folders']}}" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||||
</sourceEntries>
|
</sourceEntries>
|
||||||
</configuration>
|
</configuration>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
|
@ -180,23 +396,135 @@
|
||||||
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.{{release_config_uid}}" name="Release" parent="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release">
|
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.{{release_config_uid}}" name="Release" parent="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release">
|
||||||
<folderInfo id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.{{release_config_uid}}." name="/" resourcePath="">
|
<folderInfo id="ilg.gnuarmeclipse.managedbuild.cross.config.elf.release.{{release_config_uid}}." name="/" resourcePath="">
|
||||||
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.release.{{u.id}}" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.release">
|
<toolChain id="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.release.{{u.id}}" name="Cross ARM GCC" superClass="ilg.gnuarmeclipse.managedbuild.cross.toolchain.elf.release">
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.{{u.id}}" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.size" valueType="enumerated"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.{{u.id}}" name="Optimization Level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level" value="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.{{options['common']['optimization.level']}}" valueType="enumerated"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.{{u.id}}" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.{{u.id}}" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.{{options['common']['arm.target.family']}}" valueType="enumerated"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.{{u.id}}" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.arch.{{options['common']['arm.target.arch']}}" valueType="enumerated"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.{{u.id}}" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.{{u.id}}" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.{{options['common']['arm.target.instructionset']}}" valueType="enumerated"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.{{u.id}}" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" value="true" valueType="boolean"/>
|
{% if options['common']['arm.target.thumbinterwork'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.{{u.id}}" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.thumbinterwork" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.{{u.id}}" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family.{{u.id}}" name="ARM family" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.family" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.{{target_mcpu}}" valueType="enumerated"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.{{u.id}}" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.{{target_fpu_abi}}" valueType="enumerated"/>
|
|
||||||
{% if target_fpu_unit %}
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.{{u.id}}" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.{{target_fpu_unit}}" valueType="enumerated"/>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if options['common']['arm.target.endianness'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.{{options['common']['arm.target.endianness']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['common']['arm.target.fpu.abi'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.{{u.id}}" name="Float ABI" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.{{options['common']['arm.target.fpu.abi']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['arm.target.fpu.unit'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.{{u.id}}" name="FPU Type" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.{{options['common']['arm.target.fpu.unit']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['arm.target.unalignedaccess'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.{{options['common']['arm.target.unalignedaccess']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['common']['optimization.messagelength'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength.{{u.id}}" name="Message length (-fmessage-length=0)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.messagelength" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.signedchar'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar.{{u.id}}" name="'char' is signed (-fsigned-char)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.signedchar" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.functionsections'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections.{{u.id}}" name="Function sections (-ffunction-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.functionsections" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.datasections'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections.{{u.id}}" name="Data sections (-fdata-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.datasections" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.nocommon'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nocommon" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.noinlinefunctions'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.noinlinefunctions" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.freestanding'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.freestanding" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.nobuiltin'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nobuiltin" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.spconstant'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.spconstant" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.PIC'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.PIC" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.nomoveloopinvariants'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants.{{u.id}}" name="Disable loop invariant move (-fno-move-loop-invariants)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.nomoveloopinvariants" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['optimization.other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.optimization.other" value="{{options['common']['optimization.other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['common']['warnings.syntaxonly'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.syntaxonly" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.pedantic'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedantic" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.pedanticerrors'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pedanticerrors" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.nowarn'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.nowarn" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.unused'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused.{{u.id}}" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.unused" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.uninitialized'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized.{{u.id}}" name="Warn on uninitialized variables (-Wuninitialised)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.uninitialized" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.allwarn'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.{{u.id}}" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn.{{u.id}}" name="Enable all common warnings (-Wall)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.allwarn" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.extrawarn'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.{{u.id}}" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn.{{u.id}}" name="Enable extra warnings (-Wextra)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.extrawarn" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.missingdeclaration'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration.{{u.id}}" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.missingdeclaration" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.conversion'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion.{{u.id}}" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.conversion" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.pointerarith'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith.{{u.id}}" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.pointerarith" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.padded'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded.{{u.id}}" name="Warn if padding is included (-Wpadded)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.padded" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.shadow'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow.{{u.id}}" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.shadow" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.logicalop'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop.{{u.id}}" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.logicalop" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.agreggatereturn'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn.{{u.id}}" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.agreggatereturn" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.floatequal'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal.{{u.id}}" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.floatequal" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['warnings.toerrors'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.toerrors" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['common']['warnings.other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.warnings.other" value="{{options['common']['warnings.other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['common']['debugging.level'] != 'none' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.{{u.id}}" name="Debug level" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.{{options['common']['debugging.level']}}"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['debugging.format'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.{{u.id}}" name="Debug format" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.{{options['common']['debugging.format']}}"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['common']['debugging.prof'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.prof" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['common']['debugging.gprof'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.debugging.gprof" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.toolchain.name" value="GNU Tools for ARM Embedded Processors" valueType="string"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.{{u.id}}" name="Architecture" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.architecture" value="ilg.gnuarmeclipse.managedbuild.cross.option.architecture.arm" valueType="enumerated"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.{{u.id}}" name="Instruction set" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset" value="ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb" valueType="enumerated"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.{{u.id}}" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix.{{u.id}}" name="Prefix" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.prefix" value="arm-none-eabi-" valueType="string"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.{{u.id}}" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.c.{{u.id}}" name="C compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.c" value="gcc" valueType="string"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.{{u.id}}" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp.{{u.id}}" name="C++ compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.command.cpp" value="g++" valueType="string"/>
|
||||||
|
@ -211,90 +539,203 @@
|
||||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.{{u.id}}" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform.{{u.id}}" isAbstract="false" osList="all" superClass="ilg.gnuarmeclipse.managedbuild.cross.targetPlatform"/>
|
||||||
<builder buildPath="${workspace_loc:/{{name}}}/Release" id="ilg.gnuarmeclipse.managedbuild.cross.builder.{{u.id}}" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
|
<builder buildPath="${workspace_loc:/{{name}}}/Release" id="ilg.gnuarmeclipse.managedbuild.cross.builder.{{u.id}}" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="ilg.gnuarmeclipse.managedbuild.cross.builder"/>
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.{{u.id}}" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.{{u.id}}" name="Cross ARM GNU Assembler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler">
|
||||||
|
{% if options['as']['usepreprocessor'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.{{u.id}}" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor.{{u.id}}" name="Use preprocessor" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.usepreprocessor" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['as']['nostdinc'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.nostdinc.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.nostdinc" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.paths" valueType="includePath">
|
||||||
{% for path in include_paths %}
|
{% for path in options['common']['include_paths'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
||||||
{% for s in asm_defines %}
|
{% for s in options['as']['defines'] %}
|
||||||
<listOptionValue builtIn="false" value="{{s}}"/>
|
<listOptionValue builtIn="false" value="{{s}}"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.files.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.files.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
||||||
<listOptionValue builtIn="false" value="mbed_config.h"/>
|
{% for file in options['common']['include_files'] %}
|
||||||
|
<listOptionValue builtIn="false" value=""{{file}}""/>
|
||||||
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
|
{% if options['as']['otherwarnings'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.otherwarnings.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.otherwarnings" value="{{options['as']['otherwarnings']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['as']['verbose'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.verbose.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.verbose" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['as']['other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.other.{{u.id}}" name="Other assembler flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.assembler.other" value="{{options['as']['other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.assembler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.{{release_tool_c_compiler_uid}}" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.{{release_tool_c_compiler_uid}}" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
|
||||||
|
{% if options['c']['nostdinc'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.nostdinc.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.nostdinc" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||||
{% for path in include_paths %}
|
{% for path in options['common']['include_paths'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
||||||
{% for s in c_defines %}
|
{% for s in options['c']['defines'] %}
|
||||||
<listOptionValue builtIn="false" value="{{s}}"/>
|
<listOptionValue builtIn="false" value="{{s}}"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.files.{{u.id}}" name="Include files (-include)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.files.{{u.id}}" name="Include files (-include)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
||||||
<listOptionValue builtIn="false" value="mbed_config.h"/>
|
{% for file in options['common']['include_files'] %}
|
||||||
|
<listOptionValue builtIn="false" value=""{{file}}""/>
|
||||||
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
|
{% if options['c']['compiler.std'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std" value="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.{{options['c']['compiler.std']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['otheroptimizations'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otheroptimizations.{{u.id}}" name="Other optimization flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otheroptimizations" useByScannerDiscovery="true" value="{{options['c']['otheroptimizations']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['warnings.missingprototypes'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.missingprototypes.{{u.id}}" name="Warn if a global function has no prototype (-Wmissing-prototypes)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.missingprototypes" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['warnings.strictprototypes'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.strictprototypes.{{u.id}}" name="Warn if a function has no arg type (-Wstrict-prototypes)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.strictprototypes" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['warnings.badfunctioncast'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.badfunctioncast.{{u.id}}" name="Warn if wrong cast (-Wbad-function-cast)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.warning.badfunctioncast" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['otherwarnings'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otherwarnings.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.otherwarnings" value="{{options['c']['otherwarnings']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['verbose'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.verbose.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.verbose" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['c']['other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.other" value="{{options['c']['other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.{{release_tool_c_compiler_input_uid}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.{{release_tool_c_compiler_input_uid}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.{{release_tool_cpp_compiler_uid}}" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.{{release_tool_cpp_compiler_uid}}" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
|
||||||
|
{% if options['cpp']['nostdinc'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nostdinc.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nostdinc" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['nostdincpp'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nostdincpp.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nostdincpp" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.{{u.id}}" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||||
{% for path in include_paths %}
|
{% for path in options['common']['include_paths'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.noexceptions.{{u.id}}" name="Do not use exceptions (-fno-exceptions)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.noexceptions" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nortti.{{u.id}}" name="Do not use RTTI (-fno-rtti)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nortti" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nousecxaatexit.{{u.id}}" name="Do not use _cxa_atexit() (-fno-use-cxa-atexit)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nousecxaatexit" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nothreadsafestatics.{{u.id}}" name="Do not use thread-safe statics (-fno-threadsafe-statics)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nothreadsafestatics" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs.{{u.id}}" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">
|
||||||
{% for s in cpp_defines %}
|
{% for s in options['cpp']['defines'] %}
|
||||||
<listOptionValue builtIn="false" value="{{s}}"/>
|
<listOptionValue builtIn="false" value="{{s}}"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.files.{{u.id}}" name="Include files (-include)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.files.{{u.id}}" name="Include files (-include)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.files" useByScannerDiscovery="true" valueType="includeFiles">
|
||||||
<listOptionValue builtIn="false" value="mbed_config.h"/>
|
{% for file in options['common']['include_files'] %}
|
||||||
|
<listOptionValue builtIn="false" value=""{{file}}""/>
|
||||||
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
|
{% if options['cpp']['compiler.std'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.std.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.std" value="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.std.{{options['cpp']['compiler.std']}}" valueType="enumerated"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['cpp']['optimization.noexceptions'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.noexceptions.{{u.id}}" name="Do not use exceptions (-fno-exceptions)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.noexceptions" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['optimization.nortti'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nortti.{{u.id}}" name="Do not use RTTI (-fno-rtti)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nortti" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['optimization.nousecxaatexit'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nousecxaatexit.{{u.id}}" name="Do not use _cxa_atexit() (-fno-use-cxa-atexit)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nousecxaatexit" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['optimization.nothreadsafestatics'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nothreadsafestatics.{{u.id}}" name="Do not use thread-safe statics (-fno-threadsafe-statics)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.nothreadsafestatics" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['otheroptimizations'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.otheroptimizations.{{u.id}}" name="Other optimization flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.otheroptimizations" useByScannerDiscovery="true" value="{{options['cpp']['otheroptimizations']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['cpp']['warnabi'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warnabi.{{u.id}}" name="Warn on ABI violations (-Wabi)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warnabi" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.ctordtorprivacy'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.ctordtorprivacy.{{u.id}}" name="Warn on class privacy (-Wctor-dtor-privacy)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.ctordtorprivacy" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.noexcept'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.noexcept.{{u.id}}" name="Warn on no-except expressions (-Wnoexcept)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.noexcept" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.nonvirtualdtor'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.nonvirtualdtor.{{u.id}}" name="Warn on virtual destructors (-Wnon-virtual-dtor)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.nonvirtualdtor" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.strictnullsentinel'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.strictnullsentinel.{{u.id}}" name="Warn on uncast NULL (-Wstrict-null-sentinel)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.strictnullsentinel" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warnings.signpromo'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.signpromo.{{u.id}}" name="Warn on sign promotion (-Wsign-promo)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warning.signpromo" useByScannerDiscovery="true" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['warneffc'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warneffc.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.warneffc" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['otherwarnings'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.otherwarnings.{{u.id}}" name="Other warning flags" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.otherwarnings" useByScannerDiscovery="true" value="{{options['cpp']['otherwarnings']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['cpp']['verbose'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.verbose.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.verbose" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['cpp']['other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.other" value="{{options['cpp']['other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.{{release_tool_cpp_compiler_input_uid}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.{{release_tool_cpp_compiler_input_uid}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
|
||||||
</tool>
|
</tool>
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker.{{u.id}}" name="Cross ARM C Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.linker">
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections.{{u.id}}" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.gcsections" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.paths.{{u.id}}" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.paths" valueType="libPaths">
|
|
||||||
</option>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.scriptfile.{{u.id}}" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.scriptfile" valueType="stringList">
|
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{linker_script}}""/>
|
|
||||||
</option>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.nostart.{{u.id}}" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.nostart" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.usenewlibnano.{{u.id}}" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.linker.usenewlibnano" value="true" valueType="boolean"/>
|
|
||||||
</tool>
|
|
||||||
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.{{u.id}}" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.{{u.id}}" name="Cross ARM C++ Linker" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker">
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.{{u.id}}" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile.{{u.id}}" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile" valueType="stringList">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile.{{u.id}}" name="Script files (-T)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.scriptfile" valueType="stringList">
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{linker_script}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{options['ld']['script']}}""/>
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths.{{u.id}}" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths" valueType="libPaths">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths.{{u.id}}" name="Library search path (-L)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.paths" valueType="libPaths">
|
||||||
{% for path in library_paths %}
|
{% for path in options['ld']['library_paths'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs" valueType="libs">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.libs" valueType="libs">
|
||||||
{% for lib in libraries %}
|
{% for lib in options['ld']['user_libraries'] %}
|
||||||
|
<listOptionValue builtIn="false" value="{{lib}}"/>
|
||||||
|
{% endfor %}
|
||||||
|
{% for lib in options['ld']['system_libraries'] %}
|
||||||
<listOptionValue builtIn="false" value="{{lib}}"/>
|
<listOptionValue builtIn="false" value="{{lib}}"/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.otherobjs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.otherobjs" valueType="userObjs">
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.otherobjs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.otherobjs" valueType="userObjs">
|
||||||
{% for path in object_files %}
|
{% for path in options['ld']['object_files'] %}
|
||||||
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
<listOptionValue builtIn="false" value=""${ProjDirPath}/{{path}}""/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</option>
|
</option>
|
||||||
|
{% if options['ld']['gcsections'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections.{{u.id}}" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.gcsections" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if options['ld']['nostart'] %}
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart.{{u.id}}" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart.{{u.id}}" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostart" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano.{{u.id}}" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.usenewlibnano" value="true" valueType="boolean"/>
|
{% endif %}
|
||||||
|
{% if options['ld']['nodeflibs'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nodeflibs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nodeflibs" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
{% if options['ld']['nostdlibs'] %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostdlibs.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.nostdlibs" value="true" valueType="boolean"/>
|
||||||
|
{% endif %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.flags.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.flags" valueType="stringList">
|
||||||
|
{% for opt in options['ld']['flags'] %}
|
||||||
|
<listOptionValue builtIn="false" value="{{opt}}"/>
|
||||||
|
{% endfor %}
|
||||||
|
</option>
|
||||||
|
|
||||||
|
{% if options['ld']['other'] != '' %}
|
||||||
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.linker.other" value="{{options['ld']['other']}}" valueType="string"/>
|
||||||
|
{% endif %}
|
||||||
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input.{{u.id}}" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.linker.input">
|
||||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||||
|
@ -315,7 +756,7 @@
|
||||||
</toolChain>
|
</toolChain>
|
||||||
</folderInfo>
|
</folderInfo>
|
||||||
<sourceEntries>
|
<sourceEntries>
|
||||||
<entry excluding="{{excluded_folders}}" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
<entry excluding="{{options['common']['excluded_folders']}}" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
|
||||||
</sourceEntries>
|
</sourceEntries>
|
||||||
</configuration>
|
</configuration>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
|
|
|
@ -0,0 +1,488 @@
|
||||||
|
# GNU ARM Eclipse
|
||||||
|
|
||||||
|
The [GNU ARM Eclipse](http://gnuarmeclipse.github.io) is an open source project that includes a family of Eclipse plug-ins and tools for multi-platform embedded ARM development, based on GNU toolchains. The project is hosted on [GitHub](https://github.com/gnuarmeclipse).
|
||||||
|
|
||||||
|
This exporter aims to create managed GNU ARM Eclipse projects, ready to build, and with as many options properly identified and set in the Eclipse C/C++ Build -> Settings page.
|
||||||
|
|
||||||
|
## Build plug-in configuration options
|
||||||
|
|
||||||
|
All options are prefixed by `ilg.gnuarmeclipse.managedbuild.cross.option.`.
|
||||||
|
|
||||||
|
### Target Processor
|
||||||
|
|
||||||
|
- `arm.target.family` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.mcpu.cortex-m3** '-mcpu=cortex-m3'
|
||||||
|
- cortex-m0 '-mcpu=%s'
|
||||||
|
- cortex-m0-small-multiply '-mcpu=%s'
|
||||||
|
- cortex-m0plus '-mcpu=%s'
|
||||||
|
- cortex-m0plus-small-multiply '-mcpu=%s'
|
||||||
|
- cortex-m1 '-mcpu=%s'
|
||||||
|
- cortex-m1-small-multiply '-mcpu=%s'
|
||||||
|
- cortex-m4 '-mcpu=%s'
|
||||||
|
- cortex-m7 '-mcpu=%s'
|
||||||
|
|
||||||
|
- `arm.target.architecture` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.arch.none** ''
|
||||||
|
- armv6-m '-march=%s'
|
||||||
|
- armv7-m '-march=%s'
|
||||||
|
|
||||||
|
- `arm.target.instructionset` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.instructionset.thumb** '-mthumb'
|
||||||
|
- arm '-marm'
|
||||||
|
|
||||||
|
- `arm.target.thumbinterwork` bool
|
||||||
|
- true `-mthumb-interwork`
|
||||||
|
|
||||||
|
- `arm.target.endianness` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.endianness.default**
|
||||||
|
- little `-mlittle-endian`
|
||||||
|
- big `-mbig-endian`
|
||||||
|
|
||||||
|
- `arm.target.fpu.abi` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.abi.default**
|
||||||
|
- soft '-mfloat-abi=soft'
|
||||||
|
- softfp '-mfloat-abi=softfp'
|
||||||
|
- hard '-mfloat-abi=hard'
|
||||||
|
|
||||||
|
- `arm.target.fpu.unit` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.fpu.unit.default**
|
||||||
|
- fpv4spd16 '-mfpu=fpv4-sp-d16'
|
||||||
|
- fpv5d16 '-mfpu=fpv5-d16'
|
||||||
|
- fpv5spd16 '-mfpu=fpv5-sp-d16'
|
||||||
|
- ...
|
||||||
|
|
||||||
|
- `arm.target.unalignedaccess`
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.arm.target.unalignedaccess.default**
|
||||||
|
- enabled '-munaligned-access'
|
||||||
|
- disabled '-mno-unaligned-access'
|
||||||
|
|
||||||
|
- `target.other` string
|
||||||
|
|
||||||
|
### Optimization
|
||||||
|
|
||||||
|
- `optimization.level` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.optimization.level.more** '-O2'
|
||||||
|
- none '-O0'
|
||||||
|
- optimize '-O1'
|
||||||
|
- most '-O3'
|
||||||
|
- size '-Os'
|
||||||
|
- debug '-Og'
|
||||||
|
|
||||||
|
- `optimization.messagelength` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fmessage-length=0'
|
||||||
|
|
||||||
|
- `optimization.signedchar` bool
|
||||||
|
- **false**
|
||||||
|
- true '-fsigned-char'
|
||||||
|
|
||||||
|
- `optimization.functionsections` bool
|
||||||
|
- **false**
|
||||||
|
- true '-ffunction-sections'
|
||||||
|
|
||||||
|
- `optimization.datasections` bool
|
||||||
|
- **false**
|
||||||
|
- true '-fdata-sections'
|
||||||
|
|
||||||
|
- `optimization.nocommon` bool
|
||||||
|
- **false**
|
||||||
|
- true '-fno-common'
|
||||||
|
|
||||||
|
- `optimization.noinlinefunctions` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fno-inline-functions'
|
||||||
|
|
||||||
|
- `optimization.freestanding` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-ffreestanding'
|
||||||
|
|
||||||
|
- `optimization.nobuiltin` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fno-builtin'
|
||||||
|
|
||||||
|
- `optimization.spconstant` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fsingle-precision-constant'
|
||||||
|
|
||||||
|
- `optimization.PIC` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fPIC'
|
||||||
|
|
||||||
|
- `optimization.lto` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-flto'
|
||||||
|
|
||||||
|
- `optimization.nomoveloopinvariants` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fno-move-loop-invariants'
|
||||||
|
|
||||||
|
- `optimization.other` string
|
||||||
|
|
||||||
|
- `` bool
|
||||||
|
- **false** ''
|
||||||
|
- true ''
|
||||||
|
|
||||||
|
### Warnings
|
||||||
|
|
||||||
|
- `warnings.syntaxonly` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fsyntax-only'
|
||||||
|
|
||||||
|
- `warnings.pedantic` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-pedantic'
|
||||||
|
|
||||||
|
- `warnings.pedanticerrors` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-pedantic-errors'
|
||||||
|
|
||||||
|
- `warnings.nowarn` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-w'
|
||||||
|
|
||||||
|
- `warnings.unused` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wunused'
|
||||||
|
|
||||||
|
- `warnings.uninitialized` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wuninitialized'
|
||||||
|
|
||||||
|
- `warnings.allwarn` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wall'
|
||||||
|
|
||||||
|
- `warnings.extrawarn` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wextra'
|
||||||
|
|
||||||
|
- `warnings.missingdeclaration` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wmissing-declarations'
|
||||||
|
|
||||||
|
- `warnings.conversion` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wconversion'
|
||||||
|
|
||||||
|
- `warnings.pointerarith` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wpointer-arith'
|
||||||
|
|
||||||
|
- `warnings.padded` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wpadded'
|
||||||
|
|
||||||
|
- `warnings.shadow` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wshadow'
|
||||||
|
|
||||||
|
- `warnings.logicalop` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wlogical-op'
|
||||||
|
|
||||||
|
- `warnings.agreggatereturn` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Waggregate-return'
|
||||||
|
|
||||||
|
- `warnings.floatequal` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wfloat-equal'
|
||||||
|
|
||||||
|
- `warnings.toerrors` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Werror'
|
||||||
|
|
||||||
|
- `warnings.other` string
|
||||||
|
|
||||||
|
### Debugging
|
||||||
|
|
||||||
|
- `debugging.level` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.debugging.level.default** '-g'
|
||||||
|
- none ''
|
||||||
|
- minimal '-g1'
|
||||||
|
- max '-g3'
|
||||||
|
|
||||||
|
- `debugging.format` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.debugging.format.default** ''
|
||||||
|
- gdb '-ggdb'
|
||||||
|
- stabs '-gstabs'
|
||||||
|
- stabsplus '-gstabs+'
|
||||||
|
- dwarf2 '-gdwarf-2'
|
||||||
|
- dwarf3 '-gdwarf-3'
|
||||||
|
- dwarf4 '-gdwarf-4'
|
||||||
|
- dwarf5 '-gdwarf-5'
|
||||||
|
|
||||||
|
- `debugging.prof` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-p'
|
||||||
|
|
||||||
|
- `debugging.gprof` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-pg'
|
||||||
|
|
||||||
|
- `debugging.other` string
|
||||||
|
|
||||||
|
|
||||||
|
### Compiler common options
|
||||||
|
|
||||||
|
- `verbose` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-v'
|
||||||
|
|
||||||
|
- `savetemps` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '--save-temps'
|
||||||
|
|
||||||
|
- `nostdinc` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostdinc'
|
||||||
|
|
||||||
|
- `asmlisting` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wa,-adhlns="$@.lst"'
|
||||||
|
|
||||||
|
- `preprocessor.preprocessonly` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-E'
|
||||||
|
|
||||||
|
- `dirs.include.files`
|
||||||
|
- '-include%s'
|
||||||
|
|
||||||
|
- `compiler.other` string
|
||||||
|
|
||||||
|
### Linker common options
|
||||||
|
|
||||||
|
- `mapfilename` string
|
||||||
|
- '-Wl,-Map,"${BuildArtifactFileBaseName}.map"'
|
||||||
|
|
||||||
|
- `linker.scriptfile`
|
||||||
|
- '-T %s'
|
||||||
|
|
||||||
|
- `cref` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Xlinker --cref'
|
||||||
|
|
||||||
|
- `printmap` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Xlinker --print-map'
|
||||||
|
|
||||||
|
- `linker.nostart` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostartfiles'
|
||||||
|
|
||||||
|
- `linker.nodeflibs` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-nodefaultlibs'
|
||||||
|
|
||||||
|
- `linker.nostdlibs` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostdlib'
|
||||||
|
|
||||||
|
- `linker.gcsections` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Xlinker --gc-sections'
|
||||||
|
|
||||||
|
- `linker.printgcsections` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Xlinker --print-gc-sections'
|
||||||
|
|
||||||
|
- `linker.strip` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-s'
|
||||||
|
|
||||||
|
- `linker.other` string
|
||||||
|
|
||||||
|
- `linker.usenewlibnano` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '--specs=nano.specs'
|
||||||
|
|
||||||
|
- `linker.useprintffloat` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-u \_printf\_float'
|
||||||
|
|
||||||
|
- `linker.usescanffloat` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-u \_scanf\_float'
|
||||||
|
|
||||||
|
|
||||||
|
### Cross ARM GNU Assembler
|
||||||
|
|
||||||
|
#### Preprocessor
|
||||||
|
|
||||||
|
- `nostdinc` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostdinc'
|
||||||
|
|
||||||
|
#### Includes
|
||||||
|
|
||||||
|
#### Warnings
|
||||||
|
|
||||||
|
#### Miscellaneous
|
||||||
|
|
||||||
|
- `verbose` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-v'
|
||||||
|
|
||||||
|
- `assembler.other` string
|
||||||
|
|
||||||
|
### Cross ARM GNU C Compiler
|
||||||
|
|
||||||
|
#### Preprocessor
|
||||||
|
|
||||||
|
- `nostdinc` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostdinc'
|
||||||
|
|
||||||
|
#### Includes
|
||||||
|
|
||||||
|
#### Optimization
|
||||||
|
|
||||||
|
- `c.compiler.std` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.std.default** ''
|
||||||
|
- ansi '-ansi'
|
||||||
|
- c90 '-std=c90' (c89)
|
||||||
|
- gnu90 '-std=gnu90' (gnu89)
|
||||||
|
- c99 '-std=c99' (c9x)
|
||||||
|
- gnu99 '-std=gnu99' (gnu9x)
|
||||||
|
- c11 '-std=c11' (c1x)
|
||||||
|
- gnu11 '-std=gnu11' (gnu1x)
|
||||||
|
|
||||||
|
#### Warnings
|
||||||
|
|
||||||
|
- `c.compiler.warning.missingprototypes` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wmissing-prototypes'
|
||||||
|
|
||||||
|
- `c.compiler.warning.strictprototypes` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wstrict-prototypes'
|
||||||
|
|
||||||
|
- `c.compiler.warning.badfunctioncast` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Wbad-function-cast'
|
||||||
|
|
||||||
|
#### Miscellaneous
|
||||||
|
|
||||||
|
- `verbose` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-v'
|
||||||
|
|
||||||
|
- `c.compiler.other` string
|
||||||
|
|
||||||
|
### Cross ARM GNU C++ Compiler
|
||||||
|
|
||||||
|
#### Preprocessor
|
||||||
|
|
||||||
|
- `nostdinc` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostdinc'
|
||||||
|
|
||||||
|
- `nostdincpp` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostdinc++'
|
||||||
|
|
||||||
|
#### Includes
|
||||||
|
|
||||||
|
#### Optimization
|
||||||
|
|
||||||
|
- `cpp.compiler.std` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.std.default** ''
|
||||||
|
- ansi (-ansi)
|
||||||
|
- cpp98 '-std=c++98' (c++03)
|
||||||
|
- gnucpp98 '-std=gnu++98' (gnu++03)
|
||||||
|
- cpp0x '-std=c++0x'
|
||||||
|
- gnucpp0x '-std=gnu++0x'
|
||||||
|
- cpp11 '-std=c++11'
|
||||||
|
- gnucpp11 '-std=gnu++11'
|
||||||
|
- cpp1y '-std=c++1y'
|
||||||
|
- gnucpp1y '-std=gnu++1y'
|
||||||
|
- cpp14 '-std=c++14'
|
||||||
|
- gnucpp1 4'-std=gnu++14'
|
||||||
|
- cpp1z '-std=c++1z'
|
||||||
|
- gnucpp1z '-std=gnu++1z'
|
||||||
|
|
||||||
|
- `cpp.compiler.abiversion` enumerated
|
||||||
|
- **ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.abiversion.0** '-fabi-version=0'
|
||||||
|
- default ''
|
||||||
|
- 1 '-fabi-version=1'
|
||||||
|
- 2 '-fabi-version=2'
|
||||||
|
- 3 '-fabi-version=3'
|
||||||
|
- 4 '-fabi-version=4'
|
||||||
|
- 5 '-fabi-version=5'
|
||||||
|
- 6 '-fabi-version=6'
|
||||||
|
|
||||||
|
- `cpp.compiler.noexceptions` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fno-exceptions'
|
||||||
|
|
||||||
|
- `cpp.compiler.nortti` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fno-rtti'
|
||||||
|
|
||||||
|
- `cpp.compiler.nousecxaatexit` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fno-use-cxa-atexit'
|
||||||
|
|
||||||
|
- `cpp.compiler.nothreadsafestatics` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-fno-threadsafe-statics'
|
||||||
|
|
||||||
|
|
||||||
|
#### Warnings
|
||||||
|
|
||||||
|
- `cpp.compiler.warnabi` bool
|
||||||
|
- **false** '-Wabi'
|
||||||
|
|
||||||
|
- `cpp.compiler.warning.ctordtorprivacy` bool
|
||||||
|
- **false** '-Wctor-dtor-privacy'
|
||||||
|
|
||||||
|
- `cpp.compiler.warning.noexcept` bool
|
||||||
|
- **false** '-Wnoexcept'
|
||||||
|
|
||||||
|
- `cpp.compiler.warning.nonvirtualdtor` bool
|
||||||
|
- **false** '-Wnon-virtual-dtor'
|
||||||
|
|
||||||
|
- `cpp.compiler.warning.strictnullsentinel` bool
|
||||||
|
- **false** '-Wstrict-null-sentinel'
|
||||||
|
|
||||||
|
- `cpp.compiler.warning.signpromo` bool
|
||||||
|
- **false** '-Wsign-promo'
|
||||||
|
|
||||||
|
- `cpp.compiler.warneffc` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-Weffc++'
|
||||||
|
|
||||||
|
#### Miscellaneous
|
||||||
|
|
||||||
|
- `verbose` bool
|
||||||
|
- **false** ''
|
||||||
|
- true '-v'
|
||||||
|
|
||||||
|
- `cpp.compiler.other` string
|
||||||
|
|
||||||
|
### Cross ARM GNU C++ Linker
|
||||||
|
|
||||||
|
#### General
|
||||||
|
|
||||||
|
- `cpp.linker.nostart`
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostartfiles'
|
||||||
|
|
||||||
|
- `cpp.linker.nodeflibs`
|
||||||
|
- **false** ''
|
||||||
|
- true '-nodefaultlibs'
|
||||||
|
|
||||||
|
- `cpp.linker.nostdlibs`
|
||||||
|
- **false** ''
|
||||||
|
- true '-nostdlib'
|
||||||
|
|
||||||
|
#### Libraries
|
||||||
|
|
||||||
|
#### Miscellaneous
|
||||||
|
|
||||||
|
|
||||||
|
## Template
|
||||||
|
|
||||||
|
- `` bool
|
||||||
|
- **false** ''
|
||||||
|
- true ''
|
|
@ -26,10 +26,13 @@ from os.path import splitext, basename, relpath, dirname
|
||||||
from random import randint
|
from random import randint
|
||||||
import os
|
import os
|
||||||
import copy
|
import copy
|
||||||
|
# import logging
|
||||||
|
|
||||||
from tools.targets import TARGET_MAP
|
from tools.targets import TARGET_MAP
|
||||||
from tools.utils import NotSupportedException
|
from tools.utils import NotSupportedException
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
|
||||||
class UID:
|
class UID:
|
||||||
"""
|
"""
|
||||||
|
@ -44,6 +47,8 @@ class UID:
|
||||||
# Each invocation generates a new number.
|
# Each invocation generates a new number.
|
||||||
u = UID()
|
u = UID()
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
|
||||||
class GNUARMEclipse(Exporter):
|
class GNUARMEclipse(Exporter):
|
||||||
NAME = 'GNU ARM Eclipse'
|
NAME = 'GNU ARM Eclipse'
|
||||||
|
@ -53,17 +58,7 @@ class GNUARMEclipse(Exporter):
|
||||||
TARGETS = [target for target, obj in TARGET_MAP.iteritems()
|
TARGETS = [target for target, obj in TARGET_MAP.iteritems()
|
||||||
if 'GCC_ARM' in obj.supported_toolchains]
|
if 'GCC_ARM' in obj.supported_toolchains]
|
||||||
|
|
||||||
@staticmethod
|
# override
|
||||||
def filter_dot(s):
|
|
||||||
"""
|
|
||||||
Remove the './' prefix, if present.
|
|
||||||
"""
|
|
||||||
if s == None:
|
|
||||||
return None
|
|
||||||
if s[:2] == './':
|
|
||||||
return s[2:]
|
|
||||||
return s
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def flags(self):
|
def flags(self):
|
||||||
"""Returns a dictionary of toolchain flags.
|
"""Returns a dictionary of toolchain flags.
|
||||||
|
@ -88,48 +83,184 @@ class GNUARMEclipse(Exporter):
|
||||||
config_header)
|
config_header)
|
||||||
return flags
|
return flags
|
||||||
|
|
||||||
def dump_tree(self, node, depth=0):
|
# override
|
||||||
for k in node.keys():
|
def generate(self):
|
||||||
n = node[k]
|
|
||||||
pn = n['parent']['name'] if 'parent' in n.keys() else ''
|
|
||||||
print ' ' * depth, n['name'], n['is_used'], pn
|
|
||||||
if len(n['children'].keys()) != 0:
|
|
||||||
self.dump_tree(n['children'], depth + 1)
|
|
||||||
|
|
||||||
def dump_paths(self, node, depth=0):
|
|
||||||
for k in node.keys():
|
|
||||||
n = node[k]
|
|
||||||
x = []
|
|
||||||
ni = n
|
|
||||||
while True:
|
|
||||||
x.insert(0, ni['name'])
|
|
||||||
if 'parent' not in ni:
|
|
||||||
break
|
|
||||||
ni = ni['parent']
|
|
||||||
path = '/'.join(x)
|
|
||||||
print path, n['is_used']
|
|
||||||
self.dump_paths(n['children'], depth + 1)
|
|
||||||
|
|
||||||
def recurse_excludings(self, node):
|
|
||||||
"""
|
"""
|
||||||
Recurse the tree and collect all unused folders; descend
|
Generate the .project and .cproject files.
|
||||||
the hierarchy only for used nodes.
|
|
||||||
"""
|
"""
|
||||||
for k in node.keys():
|
if not self.resources.linker_script:
|
||||||
n = node[k]
|
raise NotSupportedException("No linker script found.")
|
||||||
if n['is_used'] == False:
|
|
||||||
x = []
|
print
|
||||||
ni = n
|
print '[Create a GNU ARM Eclipse C++ managed project]'
|
||||||
while True:
|
print 'Project name: {0}'.format(self.project_name)
|
||||||
x.insert(0, ni['name'])
|
print 'Build configurations: Debug & Release'
|
||||||
if 'parent' not in ni:
|
|
||||||
break
|
self.resources.win_to_unix()
|
||||||
ni = ni['parent']
|
|
||||||
path = '/'.join(x)
|
# TODO: use some logger to display additional info if verbose
|
||||||
# print path
|
|
||||||
self.excluded_folders.append(path)
|
# There are 4 categories of options, a category common too
|
||||||
else:
|
# all tools and a specific category for each of the tools.
|
||||||
self.recurse_excludings(n['children'])
|
self.options = {}
|
||||||
|
self.options['common'] = {}
|
||||||
|
self.options['as'] = {}
|
||||||
|
self.options['c'] = {}
|
||||||
|
self.options['cpp'] = {}
|
||||||
|
self.options['ld'] = {}
|
||||||
|
|
||||||
|
libraries = []
|
||||||
|
# print 'libraries'
|
||||||
|
# print self.resources.libraries
|
||||||
|
for lib in self.resources.libraries:
|
||||||
|
l, _ = splitext(basename(lib))
|
||||||
|
libraries.append(l[3:])
|
||||||
|
|
||||||
|
self.system_libraries = [
|
||||||
|
'stdc++', 'supc++', 'm', 'c', 'gcc', 'nosys'
|
||||||
|
]
|
||||||
|
|
||||||
|
# TODO: get the list from existing .cproject
|
||||||
|
build_folders = ['Debug', 'Release', 'BUILD']
|
||||||
|
|
||||||
|
objects = [self.filter_dot(s) for s in self.resources.objects]
|
||||||
|
for bf in build_folders:
|
||||||
|
objects = [o for o in objects if not o.startswith(bf + '/')]
|
||||||
|
# print 'objects'
|
||||||
|
# print objects
|
||||||
|
|
||||||
|
self.compute_exclusions()
|
||||||
|
|
||||||
|
self.process_options()
|
||||||
|
|
||||||
|
self.options['as']['defines'] = self.toolchain.get_symbols(True)
|
||||||
|
self.options['c']['defines'] = self.toolchain.get_symbols()
|
||||||
|
self.options['cpp']['defines'] = self.toolchain.get_symbols()
|
||||||
|
print 'Symbols: {0}'.format(len(self.options['cpp']['defines']))
|
||||||
|
|
||||||
|
self.options['common']['include_paths'] = [
|
||||||
|
self.filter_dot(s) for s in self.resources.inc_dirs]
|
||||||
|
print 'Include folders: {0}'.format(len(self.options['common']['include_paths']))
|
||||||
|
self.options['common']['excluded_folders'] = '|'.join(
|
||||||
|
self.excluded_folders)
|
||||||
|
|
||||||
|
self.options['ld']['library_paths'] = [
|
||||||
|
self.filter_dot(s) for s in self.resources.lib_dirs]
|
||||||
|
|
||||||
|
self.options['ld']['object_files'] = objects
|
||||||
|
|
||||||
|
self.options['ld']['user_libraries'] = libraries
|
||||||
|
|
||||||
|
self.options['ld']['system_libraries'] = self.system_libraries
|
||||||
|
|
||||||
|
self.options['ld']['script'] = self.filter_dot(
|
||||||
|
self.resources.linker_script)
|
||||||
|
print 'Linker script: {0}'.format(self.options['ld']['script'])
|
||||||
|
|
||||||
|
ctx = {
|
||||||
|
'name': self.project_name,
|
||||||
|
|
||||||
|
# Compiler & linker command line options
|
||||||
|
'options': self.options,
|
||||||
|
|
||||||
|
# Unique IDs used in multiple places.
|
||||||
|
# Those used only once are implemented with {{u.id}}.
|
||||||
|
'debug_config_uid': u.id,
|
||||||
|
'debug_tool_c_compiler_uid': u.id,
|
||||||
|
'debug_tool_c_compiler_input_uid': u.id,
|
||||||
|
'debug_tool_cpp_compiler_uid': u.id,
|
||||||
|
'debug_tool_cpp_compiler_input_uid': u.id,
|
||||||
|
'release_config_uid': u.id,
|
||||||
|
'release_tool_c_compiler_uid': u.id,
|
||||||
|
'release_tool_c_compiler_input_uid': u.id,
|
||||||
|
'release_tool_cpp_compiler_uid': u.id,
|
||||||
|
'release_tool_cpp_compiler_input_uid': u.id,
|
||||||
|
|
||||||
|
# Must be an object with an `id` property, which
|
||||||
|
# will be called repeatedly, to generate multiple UIDs.
|
||||||
|
'u': u,
|
||||||
|
}
|
||||||
|
|
||||||
|
# TODO: it would be good to have jinja stop if one of the
|
||||||
|
# expected context values is not defined.
|
||||||
|
self.gen_file('gnuarmeclipse/.project.tmpl', ctx, '.project')
|
||||||
|
self.gen_file('gnuarmeclipse/.cproject.tmpl', ctx, '.cproject')
|
||||||
|
|
||||||
|
print 'Done.'
|
||||||
|
|
||||||
|
# override
|
||||||
|
@staticmethod
|
||||||
|
def build(project_name, log_name="build_log.txt", cleanup=True):
|
||||||
|
"""
|
||||||
|
Build GNU ARM Eclipse project.
|
||||||
|
"""
|
||||||
|
|
||||||
|
ret_code = 0
|
||||||
|
|
||||||
|
# TODO: add code to run the build in a headless configuration.
|
||||||
|
|
||||||
|
# Cleanup the exported and built files
|
||||||
|
if cleanup:
|
||||||
|
os.remove('.project')
|
||||||
|
os.remove('.cproject')
|
||||||
|
# TODO: remove Debug, Release
|
||||||
|
|
||||||
|
if ret_code != 0:
|
||||||
|
# Seems like something went wrong.
|
||||||
|
return -1
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
|
# Process source files/folders exclusions.
|
||||||
|
|
||||||
|
def compute_exclusions(self):
|
||||||
|
"""
|
||||||
|
With the project root as the only source folder known to CDT,
|
||||||
|
based on the list of source files, compute the folders to not
|
||||||
|
be included in the build.
|
||||||
|
|
||||||
|
The steps are:
|
||||||
|
- get the list of source folders, as dirname(source_file)
|
||||||
|
- compute the top folders (subfolders of the project folder)
|
||||||
|
- iterate all subfolders and add them to a tree, with all
|
||||||
|
nodes markes as 'not used'
|
||||||
|
- iterate the source folders and mark them as 'used' in the
|
||||||
|
tree, including all intermediate nodes
|
||||||
|
- recurse the tree and collect all unused folders; descend
|
||||||
|
the hierarchy only for used nodes
|
||||||
|
"""
|
||||||
|
source_folders = [self.filter_dot(s) for s in set(dirname(
|
||||||
|
src) for src in self.resources.c_sources + self.resources.cpp_sources + self.resources.s_sources)]
|
||||||
|
if '.' in source_folders:
|
||||||
|
source_folders.remove('.')
|
||||||
|
|
||||||
|
# print 'source folders'
|
||||||
|
# print source_folders
|
||||||
|
|
||||||
|
top_folders = [f for f in set(s.split(os.sep)[0]
|
||||||
|
for s in source_folders)]
|
||||||
|
# print 'top folders'
|
||||||
|
# print top_folders
|
||||||
|
|
||||||
|
self.source_tree = {}
|
||||||
|
for top_folder in top_folders:
|
||||||
|
for root, dirs, files in os.walk(top_folder):
|
||||||
|
if len(dirs) == 0:
|
||||||
|
self.add_source_folder_to_tree(root)
|
||||||
|
|
||||||
|
for folder in source_folders:
|
||||||
|
self.add_source_folder_to_tree(folder, True)
|
||||||
|
|
||||||
|
# print
|
||||||
|
# print self.source_tree
|
||||||
|
# self.dump_paths(self.source_tree)
|
||||||
|
|
||||||
|
# print 'excludings'
|
||||||
|
self.excluded_folders = ['BUILD']
|
||||||
|
self.recurse_excludings(self.source_tree)
|
||||||
|
|
||||||
|
print 'Source folders: {0}, with {1} exclusions'.format(len(source_folders), len(self.excluded_folders))
|
||||||
|
|
||||||
def add_source_folder_to_tree(self, path, is_used=False):
|
def add_source_folder_to_tree(self, path, is_used=False):
|
||||||
"""
|
"""
|
||||||
|
@ -155,67 +286,105 @@ class GNUARMEclipse(Exporter):
|
||||||
p = n[s]
|
p = n[s]
|
||||||
n = n[s]['children']
|
n = n[s]['children']
|
||||||
|
|
||||||
def compute_exclusions(self):
|
def recurse_excludings(self, node):
|
||||||
"""
|
"""
|
||||||
With the project root as the only source folder known to CDT,
|
Recurse the tree and collect all unused folders; descend
|
||||||
based on the list of source files, compute the folders to not
|
the hierarchy only for used nodes.
|
||||||
be included in the build.
|
|
||||||
|
|
||||||
The steps are:
|
|
||||||
- get the list of source folders, as dirname(source_file)
|
|
||||||
- compute the top folders (subfolders of the project folder)
|
|
||||||
- iterate all subfolders and add them to a tree, with all
|
|
||||||
nodes markes as 'not used'
|
|
||||||
- iterate the source folders and mark them as 'used' in the
|
|
||||||
tree, including all intermediate nodes
|
|
||||||
- recurse the tree and collect all unused folders; descend
|
|
||||||
the hierarchy only for used nodes
|
|
||||||
"""
|
"""
|
||||||
source_folders = [self.filter_dot(s) for s in set(dirname(
|
for k in node.keys():
|
||||||
src) for src in self.resources.c_sources + self.resources.cpp_sources + self.resources.s_sources)]
|
n = node[k]
|
||||||
source_folders.remove('.')
|
if n['is_used'] == False:
|
||||||
# print 'source folders'
|
x = []
|
||||||
# print source_folders
|
ni = n
|
||||||
|
while True:
|
||||||
|
x.insert(0, ni['name'])
|
||||||
|
if 'parent' not in ni:
|
||||||
|
break
|
||||||
|
ni = ni['parent']
|
||||||
|
path = '/'.join(x)
|
||||||
|
# print path
|
||||||
|
self.excluded_folders.append(path)
|
||||||
|
else:
|
||||||
|
self.recurse_excludings(n['children'])
|
||||||
|
|
||||||
top_folders = [f for f in set(s.split(os.sep)[0]
|
# -------------------------------------------------------------------------
|
||||||
for s in source_folders)]
|
|
||||||
# print 'top folders'
|
|
||||||
# print top_folders
|
|
||||||
|
|
||||||
self.source_tree = {}
|
@staticmethod
|
||||||
for top_folder in top_folders:
|
def filter_dot(s):
|
||||||
for root, dirs, files in os.walk(top_folder):
|
|
||||||
if len(dirs) == 0:
|
|
||||||
self.add_source_folder_to_tree(root)
|
|
||||||
|
|
||||||
for folder in source_folders:
|
|
||||||
self.add_source_folder_to_tree(folder, True)
|
|
||||||
|
|
||||||
# print
|
|
||||||
# print self.source_tree
|
|
||||||
# self.dump_paths(self.source_tree)
|
|
||||||
|
|
||||||
# print 'excludings'
|
|
||||||
self.excluded_folders = []
|
|
||||||
self.recurse_excludings(self.source_tree)
|
|
||||||
|
|
||||||
def generate(self):
|
|
||||||
"""
|
"""
|
||||||
Override the parent method with code generation.
|
Remove the './' prefix, if present.
|
||||||
|
This function assumes that resources.win_to_unix()
|
||||||
|
replaced all windows backslashes with slashes.
|
||||||
"""
|
"""
|
||||||
if not self.resources.linker_script:
|
if s == None:
|
||||||
raise NotSupportedException("No linker script found.")
|
return None
|
||||||
|
if s[:2] == './':
|
||||||
|
return s[2:]
|
||||||
|
return s
|
||||||
|
|
||||||
self.resources.win_to_unix()
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
print 'libraries'
|
def dump_tree(self, node, depth=0):
|
||||||
print self.resources.libraries
|
for k in node.keys():
|
||||||
|
n = node[k]
|
||||||
|
pn = n['parent']['name'] if 'parent' in n.keys() else ''
|
||||||
|
print ' ' * depth, n['name'], n['is_used'], pn
|
||||||
|
if len(n['children'].keys()) != 0:
|
||||||
|
self.dump_tree(n['children'], depth + 1)
|
||||||
|
|
||||||
libraries = []
|
def dump_paths(self, node, depth=0):
|
||||||
print self.resources.libraries
|
for k in node.keys():
|
||||||
for lib in self.resources.libraries:
|
n = node[k]
|
||||||
l, _ = splitext(basename(lib))
|
x = []
|
||||||
libraries.append(l[3:])
|
ni = n
|
||||||
|
while True:
|
||||||
|
x.insert(0, ni['name'])
|
||||||
|
if 'parent' not in ni:
|
||||||
|
break
|
||||||
|
ni = ni['parent']
|
||||||
|
path = '/'.join(x)
|
||||||
|
print path, n['is_used']
|
||||||
|
self.dump_paths(n['children'], depth + 1)
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
def process_options(self):
|
||||||
|
"""
|
||||||
|
CDT managed projects store lots of build options in separate
|
||||||
|
variables, with separate IDs in the .cproject file.
|
||||||
|
When the CDT build is started, all these options are brought
|
||||||
|
together to compose the compiler and linker command lines.
|
||||||
|
|
||||||
|
Here the process is reversed, from the compiler and linker
|
||||||
|
command lines, the options are identified and various flags are
|
||||||
|
set to control the template generation process.
|
||||||
|
|
||||||
|
Once identified, the options are removed from the command lines.
|
||||||
|
|
||||||
|
The options that were not identified are options that do not
|
||||||
|
have CDT equivalents and will be passed in the 'Other options'
|
||||||
|
categories.
|
||||||
|
|
||||||
|
Althogh this process does not have a very complicated logic,
|
||||||
|
given the large number of explicit configuration options
|
||||||
|
used by GNU ARM Eclipse managed build plug-in, it is tedious...
|
||||||
|
"""
|
||||||
|
flags = self.flags
|
||||||
|
|
||||||
|
if False:
|
||||||
|
print
|
||||||
|
print 'common_flags', flags['common_flags']
|
||||||
|
print 'asm_flags', flags['asm_flags']
|
||||||
|
print 'c_flags', flags['c_flags']
|
||||||
|
print 'cxx_flags', flags['cxx_flags']
|
||||||
|
print 'ld_flags', flags['ld_flags']
|
||||||
|
|
||||||
|
# Initialise the 'last resort' options where all unrecognised
|
||||||
|
# options will be collected.
|
||||||
|
self.options['as']['other'] = ''
|
||||||
|
self.options['c']['other'] = ''
|
||||||
|
self.options['cpp']['other'] = ''
|
||||||
|
self.options['ld']['other'] = ''
|
||||||
|
|
||||||
MCPUS = {
|
MCPUS = {
|
||||||
'Cortex-M0': {'mcpu': 'cortex-m0', 'fpu_unit': None},
|
'Cortex-M0': {'mcpu': 'cortex-m0', 'fpu_unit': None},
|
||||||
|
@ -229,119 +398,449 @@ class GNUARMEclipse(Exporter):
|
||||||
'Cortex-M7FD': {'mcpu': 'cortex-m7', 'fpu_unit': 'fpv5d16'},
|
'Cortex-M7FD': {'mcpu': 'cortex-m7', 'fpu_unit': 'fpv5d16'},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Remove options that are supplied by CDT
|
||||||
|
self.remove_option(flags['common_flags'], '-c')
|
||||||
|
self.remove_option(flags['common_flags'], '-MMD')
|
||||||
|
|
||||||
|
# As 'plan B', get the CPU from the target definition.
|
||||||
core = self.toolchain.target.core
|
core = self.toolchain.target.core
|
||||||
|
|
||||||
try:
|
self.options['common']['arm.target.family'] = None
|
||||||
# cortex-m0, cortex-m0-small-multiply, cortex-m0plus,
|
|
||||||
# cortex-m0plus-small-multiply, cortex-m1, cortex-m1-small-multiply,
|
|
||||||
# cortex-m3, cortex-m4, cortex-m7.
|
|
||||||
target_mcpu = MCPUS[core]['mcpu']
|
|
||||||
|
|
||||||
# default, fpv4spd16, fpv5d16, fpv5spd16
|
# cortex-m0, cortex-m0-small-multiply, cortex-m0plus,
|
||||||
target_fpu_unit = MCPUS[core]['fpu_unit']
|
# cortex-m0plus-small-multiply, cortex-m1, cortex-m1-small-multiply,
|
||||||
|
# cortex-m3, cortex-m4, cortex-m7.
|
||||||
|
str = self.find_options(flags['common_flags'], '-mcpu=')
|
||||||
|
if str != None:
|
||||||
|
self.options['common']['arm.target.family'] = str[len('-mcpu='):]
|
||||||
|
self.remove_option(flags['common_flags'], str)
|
||||||
|
self.remove_option(flags['ld_flags'], str)
|
||||||
|
else:
|
||||||
|
if core not in MCPUS:
|
||||||
|
raise NotSupportedException(
|
||||||
|
'Target core {0} not supported.'.format(core))
|
||||||
|
self.options['common']['arm.target.family'] = MCPUS[core]['mcpu']
|
||||||
|
|
||||||
# soft, softfp, hard.
|
self.options['common']['arm.target.arch'] = 'none'
|
||||||
target_fpu_abi = 'soft'
|
str = self.find_options(flags['common_flags'], '-march=')
|
||||||
|
arch = str[len('-march='):]
|
||||||
|
archs = {'armv6-m': 'armv6-m', 'armv7-m': 'armv7-m'}
|
||||||
|
if arch in archs:
|
||||||
|
self.options['common']['arm.target.arch'] = archs[arh]
|
||||||
|
self.remove_option(flags['common_flags'], str)
|
||||||
|
|
||||||
if target_fpu_unit != None:
|
self.options['common']['arm.target.instructionset'] = 'thumb'
|
||||||
target_fpu_abi = 'hard'
|
if '-mthumb' in flags['common_flags']:
|
||||||
|
self.remove_option(flags['common_flags'], '-mthumb')
|
||||||
|
self.remove_option(flags['ld_flags'], '-mthumb')
|
||||||
|
elif '-marm' in flags['common_flags']:
|
||||||
|
self.options['common']['arm.target.instructionset'] = 'arm'
|
||||||
|
self.remove_option(flags['common_flags'], '-marm')
|
||||||
|
self.remove_option(flags['ld_flags'], '-marm')
|
||||||
|
|
||||||
except AttributeError:
|
self.options['common']['arm.target.thumbinterwork'] = False
|
||||||
# TODO filter out projects with toolchain core not supported,
|
if '-mthumb-interwork' in flags['common_flags']:
|
||||||
# instead of raising an exception.
|
self.options['common']['arm.target.thumbinterwork'] = True
|
||||||
raise NotSupportedException(
|
self.remove_option(flags['common_flags'], '-mthumb-interwork')
|
||||||
'Target core {0} not supported.'.format(core))
|
|
||||||
|
|
||||||
# TODO: get the list from existing .cproject
|
self.options['common']['arm.target.endianness'] = None
|
||||||
build_folders = ['Debug', 'Release']
|
if '-mlittle-endian' in flags['common_flags']:
|
||||||
|
self.options['common']['arm.target.endianness'] = 'little'
|
||||||
|
self.remove_option(flags['common_flags'], '-mlittle-endian')
|
||||||
|
elif '-mbig-endian' in flags['common_flags']:
|
||||||
|
self.options['common']['arm.target.endianness'] = 'big'
|
||||||
|
self.remove_option(flags['common_flags'], '-mbig-endian')
|
||||||
|
|
||||||
objects = [self.filter_dot(s) for s in self.resources.objects]
|
self.options['common']['arm.target.fpu.unit'] = None
|
||||||
for bf in build_folders:
|
# default, fpv4spd16, fpv5d16, fpv5spd16
|
||||||
objects = [o for o in objects if not o.startswith(bf + '/')]
|
str = self.find_options(flags['common_flags'], '-mfpu=')
|
||||||
print 'objects'
|
if str != None:
|
||||||
print objects
|
fpu = str[len('-mfpu='):]
|
||||||
|
fpus = {
|
||||||
|
'fpv4-sp-d16': 'fpv4spd16',
|
||||||
|
'fpv5-d16': 'fpv5d16',
|
||||||
|
'fpv5-sp-d16': 'fpv5spd16'
|
||||||
|
}
|
||||||
|
if fpu in fpus:
|
||||||
|
self.options['common']['arm.target.fpu.unit'] = fpus[fpu]
|
||||||
|
|
||||||
f = self.flags
|
self.remove_option(flags['common_flags'], str)
|
||||||
print 'common_flags'
|
self.remove_option(flags['ld_flags'], str)
|
||||||
print f['common_flags']
|
if self.options['common']['arm.target.fpu.unit'] == None:
|
||||||
print 'asm_flags'
|
if core not in MCPUS:
|
||||||
print f['asm_flags']
|
raise NotSupportedException(
|
||||||
print 'c_flags'
|
'Target core {0} not supported.'.format(core))
|
||||||
print f['c_flags']
|
if MCPUS[core]['fpu_unit']:
|
||||||
print 'cxx_flags'
|
self.options['common'][
|
||||||
print f['cxx_flags']
|
'arm.target.fpu.unit'] = MCPUS[core]['fpu_unit']
|
||||||
print 'ld_flags'
|
|
||||||
print f['ld_flags']
|
|
||||||
|
|
||||||
source_folders = [self.filter_dot(s) for s in set(dirname(
|
# soft, softfp, hard.
|
||||||
src) for src in self.resources.c_sources + self.resources.cpp_sources + self.resources.s_sources)]
|
str = self.find_options(flags['common_flags'], '-mfloat-abi=')
|
||||||
source_folders.remove('.')
|
if str != None:
|
||||||
|
self.options['common']['arm.target.fpu.abi'] = str[
|
||||||
|
len('-mfloat-abi='):]
|
||||||
|
self.remove_option(flags['common_flags'], str)
|
||||||
|
self.remove_option(flags['ld_flags'], str)
|
||||||
|
|
||||||
self.compute_exclusions()
|
self.options['common']['arm.target.unalignedaccess'] = None
|
||||||
|
if '-munaligned-access' in flags['common_flags']:
|
||||||
|
self.options['common']['arm.target.unalignedaccess'] = 'enabled'
|
||||||
|
self.remove_option(flags['common_flags'], '-munaligned-access')
|
||||||
|
elif '-mno-unaligned-access' in flags['common_flags']:
|
||||||
|
self.options['common']['arm.target.unalignedaccess'] = 'disabled'
|
||||||
|
self.remove_option(flags['common_flags'], '-mno-unaligned-access')
|
||||||
|
|
||||||
asm_defines = self.toolchain.get_symbols(True)
|
# Default optimisation level for Release.
|
||||||
c_defines = self.toolchain.get_symbols()
|
self.options['common']['optimization.level'] = '-Os'
|
||||||
cpp_defines = self.toolchain.get_symbols()
|
|
||||||
|
|
||||||
include_paths = [self.filter_dot(s) for s in self.resources.inc_dirs]
|
# If the project defines an optimisation level, it is used
|
||||||
|
# only for the Release configuration, the Debug one used '-Og'.
|
||||||
|
str = self.find_options(flags['common_flags'], '-O')
|
||||||
|
if str != None:
|
||||||
|
levels = {
|
||||||
|
'-O0': 'none', '-O1': 'optimize', '-O2': 'more',
|
||||||
|
'-O3': 'most', '-Os': 'size', '-Og': 'debug'
|
||||||
|
}
|
||||||
|
if str in levels:
|
||||||
|
self.options['common']['optimization.level'] = levels[str]
|
||||||
|
self.remove_option(flags['common_flags'], str)
|
||||||
|
|
||||||
library_paths = [self.filter_dot(s) for s in self.resources.lib_dirs]
|
include_files = []
|
||||||
|
for all_flags in [flags['common_flags'], flags['c_flags'], flags['cxx_flags']]:
|
||||||
|
while '-include' in all_flags:
|
||||||
|
ix = all_flags.index('-include')
|
||||||
|
str = all_flags[ix + 1]
|
||||||
|
if str not in include_files:
|
||||||
|
include_files.append(str)
|
||||||
|
self.remove_option(all_flags, '-include')
|
||||||
|
self.remove_option(all_flags, str)
|
||||||
|
|
||||||
linker_script = self.filter_dot(self.resources.linker_script)
|
self.options['common']['include_files'] = include_files
|
||||||
|
|
||||||
ctx = {
|
if '-ansi' in flags['c_flags']:
|
||||||
'name': self.project_name,
|
self.options['c']['compiler.std'] = '-ansi'
|
||||||
'excluded_folders': '|'.join(self.excluded_folders),
|
self.remove_option(flags['c_flags'], str)
|
||||||
'include_paths': include_paths,
|
else:
|
||||||
'library_paths': library_paths,
|
str = self.find_options(flags['c_flags'], '-std')
|
||||||
'object_files': objects,
|
std = str[len('-std='):]
|
||||||
'libraries': libraries,
|
c_std = {
|
||||||
'linker_script': linker_script,
|
'c90': 'c90', 'c89': 'c90', 'gnu90': 'gnu90', 'gnu89': 'gnu90',
|
||||||
'asm_defines': asm_defines,
|
'c99': 'c99', 'c9x': 'c99', 'gnu99': 'gnu99', 'gnu9x': 'gnu98',
|
||||||
'c_defines': c_defines,
|
'c11': 'c11', 'c1x': 'c11', 'gnu11': 'gnu11', 'gnu1x': 'gnu11'
|
||||||
'cpp_defines': cpp_defines,
|
}
|
||||||
'target_mcpu': target_mcpu,
|
if std in c_std:
|
||||||
'target_fpu_abi': target_fpu_abi,
|
self.options['c']['compiler.std'] = c_std[std]
|
||||||
'target_fpu_unit': target_fpu_unit,
|
self.remove_option(flags['c_flags'], str)
|
||||||
|
|
||||||
# Unique IDs used each in multiple places.
|
if '-ansi' in flags['cxx_flags']:
|
||||||
# Add more if needed.
|
self.options['cpp']['compiler.std'] = '-ansi'
|
||||||
'debug_config_uid': u.id,
|
self.remove_option(flags['cxx_flags'], str)
|
||||||
'debug_tool_c_compiler_uid': u.id,
|
else:
|
||||||
'debug_tool_c_compiler_input_uid': u.id,
|
str = self.find_options(flags['cxx_flags'], '-std')
|
||||||
'debug_tool_cpp_compiler_uid': u.id,
|
std = str[len('-std='):]
|
||||||
'debug_tool_cpp_compiler_input_uid': u.id,
|
cpp_std = {
|
||||||
'release_config_uid': u.id,
|
'c++98': 'cpp98', 'c++03': 'cpp98',
|
||||||
'release_tool_c_compiler_uid': u.id,
|
'gnu++98': 'gnucpp98', 'gnu++03': 'gnucpp98',
|
||||||
'release_tool_c_compiler_input_uid': u.id,
|
'c++0x': 'cpp0x', 'gnu++0x': 'gnucpp0x',
|
||||||
'release_tool_cpp_compiler_uid': u.id,
|
'c++11': 'cpp11', 'gnu++11': 'gnucpp11',
|
||||||
'release_tool_cpp_compiler_input_uid': u.id,
|
'c++1y': 'cpp1y', 'gnu++1y': 'gnucpp1y',
|
||||||
|
'c++14': 'cpp14', 'gnu++14': 'gnucpp14',
|
||||||
|
'c++1z': 'cpp1z', 'gnu++1z': 'gnucpp1z',
|
||||||
|
}
|
||||||
|
if std in cpp_std:
|
||||||
|
self.options['cpp']['compiler.std'] = cpp_std[std]
|
||||||
|
self.remove_option(flags['cxx_flags'], str)
|
||||||
|
|
||||||
# Must be an object with an `id` property, which
|
# Common optimisation options.
|
||||||
# will be called repeatedly, to generate multiple UIDs.
|
optimization_options = {
|
||||||
'u': u,
|
'-fmessage-length=0': 'optimization.messagelength',
|
||||||
|
'-fsigned-char': 'optimization.signedchar',
|
||||||
|
'-ffunction-sections': 'optimization.functionsections',
|
||||||
|
'-fdata-sections': 'optimization.datasections',
|
||||||
|
'-fno-common': 'optimization.nocommon',
|
||||||
|
'-fno-inline-functions': 'optimization.noinlinefunctions',
|
||||||
|
'-ffreestanding': 'optimization.freestanding',
|
||||||
|
'-fno-builtin': 'optimization.nobuiltin',
|
||||||
|
'-fsingle-precision-constant': 'optimization.spconstant',
|
||||||
|
'-fPIC': 'optimization.PIC',
|
||||||
|
'-fno-move-loop-invariants': 'optimization.nomoveloopinvariants',
|
||||||
}
|
}
|
||||||
|
|
||||||
self.gen_file('gnuarmeclipse/.project.tmpl', ctx, '.project')
|
for option in optimization_options:
|
||||||
self.gen_file('gnuarmeclipse/.cproject.tmpl', ctx, '.cproject')
|
self.options['common'][optimization_options[option]] = False
|
||||||
|
if option in flags['common_flags']:
|
||||||
|
self.options['common'][optimization_options[option]] = True
|
||||||
|
self.remove_option(flags['common_flags'], option)
|
||||||
|
|
||||||
|
# Common warning options.
|
||||||
|
warning_options = {
|
||||||
|
'-fsyntax-only': 'warnings.syntaxonly',
|
||||||
|
'-pedantic': 'warnings.pedantic',
|
||||||
|
'-pedantic-errors': 'warnings.pedanticerrors',
|
||||||
|
'-w': 'warnings.nowarn',
|
||||||
|
'-Wunused': 'warnings.unused',
|
||||||
|
'-Wuninitialized': 'warnings.uninitialized',
|
||||||
|
'-Wall': 'warnings.allwarn',
|
||||||
|
'-Wextra': 'warnings.extrawarn',
|
||||||
|
'-Wmissing-declarations': 'warnings.missingdeclaration',
|
||||||
|
'-Wconversion': 'warnings.conversion',
|
||||||
|
'-Wpointer-arith': 'warnings.pointerarith',
|
||||||
|
'-Wpadded': 'warnings.padded',
|
||||||
|
'-Wshadow': 'warnings.shadow',
|
||||||
|
'-Wlogical-op': 'warnings.logicalop',
|
||||||
|
'-Waggregate-return': 'warnings.agreggatereturn',
|
||||||
|
'-Wfloat-equal': 'warnings.floatequal',
|
||||||
|
'-Werror': 'warnings.toerrors',
|
||||||
|
}
|
||||||
|
|
||||||
|
for option in warning_options:
|
||||||
|
self.options['common'][warning_options[option]] = False
|
||||||
|
if option in flags['common_flags']:
|
||||||
|
self.options['common'][warning_options[option]] = True
|
||||||
|
self.remove_option(flags['common_flags'], option)
|
||||||
|
|
||||||
|
# Common debug options.
|
||||||
|
debug_levels = {
|
||||||
|
'-g': 'default',
|
||||||
|
'-g1': 'minimal',
|
||||||
|
'-g3': 'max',
|
||||||
|
}
|
||||||
|
self.options['common']['debugging.level'] = 'none'
|
||||||
|
for option in debug_levels:
|
||||||
|
if option in flags['common_flags']:
|
||||||
|
self.options['common'][
|
||||||
|
'debugging.level'] = debug_levels[option]
|
||||||
|
self.remove_option(flags['common_flags'], option)
|
||||||
|
|
||||||
|
debug_formats = {
|
||||||
|
'-ggdb': 'gdb',
|
||||||
|
'-gstabs': 'stabs',
|
||||||
|
'-gstabs+': 'stabsplus',
|
||||||
|
'-gdwarf-2': 'dwarf2',
|
||||||
|
'-gdwarf-3': 'dwarf3',
|
||||||
|
'-gdwarf-4': 'dwarf4',
|
||||||
|
'-gdwarf-5': 'dwarf5',
|
||||||
|
}
|
||||||
|
|
||||||
|
self.options['common']['debugging.format'] = ''
|
||||||
|
for option in debug_levels:
|
||||||
|
if option in flags['common_flags']:
|
||||||
|
self.options['common'][
|
||||||
|
'debugging.format'] = debug_formats[option]
|
||||||
|
self.remove_option(flags['common_flags'], option)
|
||||||
|
|
||||||
|
self.options['common']['debugging.prof'] = False
|
||||||
|
if '-p' in flags['common_flags']:
|
||||||
|
self.options['common']['debugging.prof'] = True
|
||||||
|
self.remove_option(flags['common_flags'], '-p')
|
||||||
|
|
||||||
|
self.options['common']['debugging.gprof'] = False
|
||||||
|
if '-pg' in flags['common_flags']:
|
||||||
|
self.options['common']['debugging.gprof'] = True
|
||||||
|
self.remove_option(flags['common_flags'], '-gp')
|
||||||
|
|
||||||
|
# Assembler options.
|
||||||
|
self.options['as']['usepreprocessor'] = False
|
||||||
|
while '-x' in flags['asm_flags']:
|
||||||
|
ix = flags['asm_flags'].index('-x')
|
||||||
|
str = flags['asm_flags'][ix + 1]
|
||||||
|
|
||||||
|
if str == 'assembler-with-cpp':
|
||||||
|
self.options['as']['usepreprocessor'] = True
|
||||||
|
else:
|
||||||
|
# Collect all other assembler options.
|
||||||
|
self.options['as']['other'] += ' -x ' + str
|
||||||
|
|
||||||
|
self.remove_option(flags['asm_flags'], '-x')
|
||||||
|
self.remove_option(flags['asm_flags'], 'assembler-with-cpp')
|
||||||
|
|
||||||
|
self.options['as']['nostdinc'] = False
|
||||||
|
if '-nostdinc' in flags['asm_flags']:
|
||||||
|
self.options['as']['nostdinc'] = True
|
||||||
|
self.remove_option(flags['asm_flags'], '-nostdinc')
|
||||||
|
|
||||||
|
self.options['as']['verbose'] = False
|
||||||
|
if '-v' in flags['asm_flags']:
|
||||||
|
self.options['as']['verbose'] = True
|
||||||
|
self.remove_option(flags['asm_flags'], '-v')
|
||||||
|
|
||||||
|
# C options.
|
||||||
|
self.options['c']['nostdinc'] = False
|
||||||
|
if '-nostdinc' in flags['c_flags']:
|
||||||
|
self.options['c']['nostdinc'] = True
|
||||||
|
self.remove_option(flags['c_flags'], '-nostdinc')
|
||||||
|
|
||||||
|
self.options['c']['verbose'] = False
|
||||||
|
if '-v' in flags['c_flags']:
|
||||||
|
self.options['c']['verbose'] = True
|
||||||
|
self.remove_option(flags['c_flags'], '-v')
|
||||||
|
|
||||||
|
warning_options = {
|
||||||
|
'-Wmissing-prototypes': 'warnings.missingprototypes',
|
||||||
|
'-Wstrict-prototypes': 'warnings.strictprototypes',
|
||||||
|
'-Wbad-function-cast': 'warnings.badfunctioncast',
|
||||||
|
}
|
||||||
|
|
||||||
|
for option in warning_options:
|
||||||
|
self.options['c'][warning_options[option]] = False
|
||||||
|
if option in flags['common_flags']:
|
||||||
|
self.options['c'][warning_options[option]] = True
|
||||||
|
self.remove_option(flags['common_flags'], option)
|
||||||
|
|
||||||
|
# C++ options.
|
||||||
|
self.options['cpp']['nostdinc'] = False
|
||||||
|
if '-nostdinc' in flags['cxx_flags']:
|
||||||
|
self.options['cpp']['nostdinc'] = True
|
||||||
|
self.remove_option(flags['cxx_flags'], '-nostdinc')
|
||||||
|
|
||||||
|
self.options['cpp']['nostdincpp'] = False
|
||||||
|
if '-nostdinc++' in flags['cxx_flags']:
|
||||||
|
self.options['cpp']['nostdincpp'] = True
|
||||||
|
self.remove_option(flags['cxx_flags'], '-nostdinc++')
|
||||||
|
|
||||||
|
optimization_options = {
|
||||||
|
'-fno-exceptions': 'optimization.noexceptions',
|
||||||
|
'-fno-rtti': 'optimization.nortti',
|
||||||
|
'-fno-use-cxa-atexit': 'optimization.nousecxaatexit',
|
||||||
|
'-fno-threadsafe-statics': 'optimization.nothreadsafestatics',
|
||||||
|
}
|
||||||
|
|
||||||
|
for option in optimization_options:
|
||||||
|
self.options['cpp'][optimization_options[option]] = False
|
||||||
|
if option in flags['cxx_flags']:
|
||||||
|
self.options['cpp'][optimization_options[option]] = True
|
||||||
|
self.remove_option(flags['cxx_flags'], option)
|
||||||
|
if option in flags['common_flags']:
|
||||||
|
self.options['cpp'][optimization_options[option]] = True
|
||||||
|
self.remove_option(flags['common_flags'], option)
|
||||||
|
|
||||||
|
warning_options = {
|
||||||
|
'-Wabi': 'warnabi',
|
||||||
|
'-Wctor-dtor-privacy': 'warnings.ctordtorprivacy',
|
||||||
|
'-Wnoexcept': 'warnings.noexcept',
|
||||||
|
'-Wnon-virtual-dtor': 'warnings.nonvirtualdtor',
|
||||||
|
'-Wstrict-null-sentinel': 'warnings.strictnullsentinel',
|
||||||
|
'-Wsign-promo': 'warnings.signpromo',
|
||||||
|
'-Weffc++': 'warneffc',
|
||||||
|
}
|
||||||
|
|
||||||
|
for option in warning_options:
|
||||||
|
self.options['cpp'][warning_options[option]] = False
|
||||||
|
if option in flags['cxx_flags']:
|
||||||
|
self.options['cpp'][warning_options[option]] = True
|
||||||
|
self.remove_option(flags['cxx_flags'], option)
|
||||||
|
if option in flags['common_flags']:
|
||||||
|
self.options['cpp'][warning_options[option]] = True
|
||||||
|
self.remove_option(flags['common_flags'], option)
|
||||||
|
|
||||||
|
self.options['cpp']['verbose'] = False
|
||||||
|
if '-v' in flags['cxx_flags']:
|
||||||
|
self.options['cpp']['verbose'] = True
|
||||||
|
self.remove_option(flags['cxx_flags'], '-v')
|
||||||
|
|
||||||
|
# Linker options.
|
||||||
|
linker_options = {
|
||||||
|
'-nostartfiles': 'nostart',
|
||||||
|
'-nodefaultlibs': 'nodeflibs',
|
||||||
|
'-nostdlib': 'nostdlibs',
|
||||||
|
}
|
||||||
|
|
||||||
|
for option in linker_options:
|
||||||
|
self.options['ld'][linker_options[option]] = False
|
||||||
|
if option in flags['ld_flags']:
|
||||||
|
self.options['ld'][linker_options[option]] = True
|
||||||
|
self.remove_option(flags['ld_flags'], option)
|
||||||
|
|
||||||
|
self.options['ld']['gcsections'] = False
|
||||||
|
if '-Wl,--gc-sections' in flags['ld_flags']:
|
||||||
|
self.options['ld']['gcsections'] = True
|
||||||
|
self.remove_option(flags['ld_flags'], '-Wl,--gc-sections')
|
||||||
|
|
||||||
|
self.options['ld']['flags'] = []
|
||||||
|
to_remove = []
|
||||||
|
for opt in flags['ld_flags']:
|
||||||
|
if opt.startswith('-Wl,--wrap,'):
|
||||||
|
self.options['ld']['flags'].append('--wrap='+opt[len('-Wl,--wrap,'):])
|
||||||
|
to_remove.append(opt)
|
||||||
|
for opt in to_remove:
|
||||||
|
self.remove_option(flags['ld_flags'], opt)
|
||||||
|
|
||||||
|
# Other tool remaining options are separated by category.
|
||||||
|
self.options['as']['otherwarnings'] = self.find_options(
|
||||||
|
flags['asm_flags'], '-W')
|
||||||
|
|
||||||
|
self.options['c']['otherwarnings'] = self.find_options(
|
||||||
|
flags['c_flags'], '-W')
|
||||||
|
self.options['c']['otheroptimizations'] = self.find_options(flags[
|
||||||
|
'c_flags'], '-f')
|
||||||
|
|
||||||
|
self.options['cpp']['otherwarnings'] = self.find_options(
|
||||||
|
flags['cxx_flags'], '-W')
|
||||||
|
self.options['cpp']['otheroptimizations'] = self.find_options(
|
||||||
|
flags['cxx_flags'], '-f')
|
||||||
|
|
||||||
|
# Other common remaining options are separated by category.
|
||||||
|
self.options['common']['optimization.other'] = self.find_options(
|
||||||
|
flags['common_flags'], '-f')
|
||||||
|
self.options['common']['warnings.other'] = self.find_options(
|
||||||
|
flags['common_flags'], '-W')
|
||||||
|
|
||||||
|
# Remaining common flags are added to each tool.
|
||||||
|
self.options['as']['other'] += ' ' + \
|
||||||
|
' '.join(flags['common_flags']) + ' ' + \
|
||||||
|
' '.join(flags['asm_flags'])
|
||||||
|
self.options['c']['other'] += ' ' + \
|
||||||
|
' '.join(flags['common_flags']) + ' ' + ' '.join(flags['c_flags'])
|
||||||
|
self.options['cpp']['other'] += ' ' + \
|
||||||
|
' '.join(flags['common_flags']) + ' ' + \
|
||||||
|
' '.join(flags['cxx_flags'])
|
||||||
|
self.options['ld']['other'] += ' ' + \
|
||||||
|
' '.join(flags['common_flags']) + ' ' + ' '.join(flags['ld_flags'])
|
||||||
|
|
||||||
|
if len(self.system_libraries) > 0:
|
||||||
|
self.options['ld']['other'] += ' -Wl,--start-group '
|
||||||
|
self.options['ld'][
|
||||||
|
'other'] += ' '.join('-l' + s for s in self.system_libraries)
|
||||||
|
self.options['ld']['other'] += ' -Wl,--end-group '
|
||||||
|
|
||||||
|
# Strip all 'other' flags, since they might have leading spaces.
|
||||||
|
self.options['as']['other'] = self.options['as']['other'].strip()
|
||||||
|
self.options['c']['other'] = self.options['c']['other'].strip()
|
||||||
|
self.options['cpp']['other'] = self.options['cpp']['other'].strip()
|
||||||
|
self.options['ld']['other'] = self.options['ld']['other'].strip()
|
||||||
|
|
||||||
|
if False:
|
||||||
|
print
|
||||||
|
print self.options
|
||||||
|
|
||||||
|
print
|
||||||
|
print 'common_flags', flags['common_flags']
|
||||||
|
print 'asm_flags', flags['asm_flags']
|
||||||
|
print 'c_flags', flags['c_flags']
|
||||||
|
print 'cxx_flags', flags['cxx_flags']
|
||||||
|
print 'ld_flags', flags['ld_flags']
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def build(project_name, log_name="build_log.txt", cleanup=True):
|
def find_options(lst, option):
|
||||||
"""
|
tmp = [str for str in lst if str.startswith(option)]
|
||||||
Build GNU ARM Eclipse project.
|
if len(tmp) > 0:
|
||||||
"""
|
return tmp[0]
|
||||||
|
|
||||||
ret_code = 0
|
|
||||||
|
|
||||||
# TODO: add code to run the build in a headless configuration.
|
|
||||||
|
|
||||||
# Cleanup the exported and built files
|
|
||||||
if cleanup:
|
|
||||||
os.remove('.project')
|
|
||||||
os.remove('.cproject')
|
|
||||||
|
|
||||||
if ret_code !=0:
|
|
||||||
# Seems like something went wrong.
|
|
||||||
return -1
|
|
||||||
else:
|
else:
|
||||||
return 0
|
return None
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def find_options(lst, prefix):
|
||||||
|
other = ''
|
||||||
|
opts = [str for str in lst if str.startswith(prefix)]
|
||||||
|
if len(opts) > 0:
|
||||||
|
for opt in opts:
|
||||||
|
other += ' ' + opt
|
||||||
|
GNUARMEclipse.remove_option(lst, opt)
|
||||||
|
return other.strip()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def remove_option(lst, option):
|
||||||
|
if option in lst:
|
||||||
|
lst.remove(option)
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
|
Loading…
Reference in New Issue