mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #1 from bridadan/gnuarmeclipse
Parallel building, makefile clean, and build steppull/3561/head
commit
7be6e92a9a
|
@ -153,7 +153,7 @@
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.{{u.id}}" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.{{u.id}}" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.{{u.id}}" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.{{u.id}}" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
||||||
<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" cleanBuildTarget="mbedclean" id="ilg.gnuarmeclipse.managedbuild.cross.builder.{{u.id}}" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" 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'] %}
|
{% 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"/>
|
||||||
|
@ -537,7 +537,7 @@
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.{{u.id}}" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash.{{u.id}}" name="Create flash image" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.createflash" value="true" valueType="boolean"/>
|
||||||
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.{{u.id}}" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize.{{u.id}}" name="Print size" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.addtools.printsize" value="true" valueType="boolean"/>
|
||||||
<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" cleanBuildTarget="mbedclean" id="ilg.gnuarmeclipse.managedbuild.cross.builder.{{u.id}}" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" 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'] %}
|
{% 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"/>
|
||||||
|
|
|
@ -22,11 +22,12 @@ the GNU ARM Eclipse plug-ins.
|
||||||
Author: Liviu Ionescu <ilg@livius.net>
|
Author: Liviu Ionescu <ilg@livius.net>
|
||||||
"""
|
"""
|
||||||
from tools.export.exporters import Exporter
|
from tools.export.exporters import Exporter
|
||||||
from os.path import splitext, basename, relpath, dirname
|
from os.path import splitext, basename, relpath, dirname, exists
|
||||||
from random import randint
|
from random import randint
|
||||||
import os
|
import os
|
||||||
import copy
|
import copy
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import shutil
|
||||||
from subprocess import call, Popen, PIPE
|
from subprocess import call, Popen, PIPE
|
||||||
|
|
||||||
# import logging
|
# import logging
|
||||||
|
@ -188,6 +189,7 @@ class GNUARMEclipse(Exporter):
|
||||||
# expected context values is not defined.
|
# expected context values is not defined.
|
||||||
self.gen_file('gnuarmeclipse/.project.tmpl', ctx, '.project')
|
self.gen_file('gnuarmeclipse/.project.tmpl', ctx, '.project')
|
||||||
self.gen_file('gnuarmeclipse/.cproject.tmpl', ctx, '.cproject')
|
self.gen_file('gnuarmeclipse/.cproject.tmpl', ctx, '.cproject')
|
||||||
|
self.gen_file('gnuarmeclipse/makefile.targets.tmpl', ctx, 'makefile.targets')
|
||||||
|
|
||||||
print 'Done.'
|
print 'Done.'
|
||||||
|
|
||||||
|
@ -228,16 +230,38 @@ class GNUARMEclipse(Exporter):
|
||||||
'--launcher.suppressErrors',
|
'--launcher.suppressErrors',
|
||||||
'-nosplash',
|
'-nosplash',
|
||||||
'-application org.eclipse.cdt.managedbuilder.core.headlessbuild',
|
'-application org.eclipse.cdt.managedbuilder.core.headlessbuild',
|
||||||
'-data', tmp_folder,
|
'-data', relpath(tmp_folder, os.getcwd()),
|
||||||
'-import', os.getcwd(),
|
'-import', '.',
|
||||||
'-cleanBuild', 'all',
|
'-cleanBuild', 'all'
|
||||||
]
|
]
|
||||||
|
|
||||||
ret_code = subprocess.call(cmd)
|
p = Popen(' '.join(cmd), stdout=PIPE, stderr=PIPE)
|
||||||
|
out, err = p.communicate()
|
||||||
|
ret_code = p.returncode
|
||||||
|
|
||||||
|
stdout_string = "=" * 10 + "STDOUT" + "=" * 10 + "\n"
|
||||||
|
err_string = "=" * 10 + "STDERR" + "=" * 10 + "\n"
|
||||||
|
err_string += err
|
||||||
|
|
||||||
|
|
||||||
|
ret_string = "SUCCESS\n"
|
||||||
|
if ret_code != 0:
|
||||||
|
ret_string += "FAILURE\n"
|
||||||
|
|
||||||
|
print "%s\nSee %s for STDOUT\n%s\n%s" % (stdout_string, log_name, err_string, ret_string)
|
||||||
|
|
||||||
|
if log_name:
|
||||||
|
# Write the output to the log file
|
||||||
|
with open(log_name, 'w+') as f:
|
||||||
|
f.write(stdout_string)
|
||||||
|
f.write(out)
|
||||||
|
f.write(err_string)
|
||||||
|
f.write(ret_string)
|
||||||
|
|
||||||
# Cleanup the exported and built files
|
# Cleanup the exported and built files
|
||||||
if cleanup:
|
if cleanup:
|
||||||
os.remove(log_name)
|
if exists(log_name):
|
||||||
|
os.remove(log_name)
|
||||||
os.remove('.project')
|
os.remove('.project')
|
||||||
os.remove('.cproject')
|
os.remove('.cproject')
|
||||||
if exists('Debug'):
|
if exists('Debug'):
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
define \n
|
||||||
|
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
mbedclean:
|
||||||
|
$(foreach TO_BE_CLEANED,$(CC_DEPS)$(C++_DEPS)$(OBJS)$(C_UPPER_DEPS)$(CXX_DEPS)$(SECONDARY_FLASH)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_UPPER_DEPS)$(C_DEPS)$(CPP_DEPS) {{name}}.elf,$(RM) $(TO_BE_CLEANED)${\n})
|
||||||
|
-@echo ' '
|
Loading…
Reference in New Issue