diff options
Diffstat (limited to 'tmk_core/tool/mbed/mbed-sdk/workspace_tools/project.py')
-rw-r--r-- | tmk_core/tool/mbed/mbed-sdk/workspace_tools/project.py | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/tmk_core/tool/mbed/mbed-sdk/workspace_tools/project.py b/tmk_core/tool/mbed/mbed-sdk/workspace_tools/project.py deleted file mode 100644 index 7bf165b0b..000000000 --- a/tmk_core/tool/mbed/mbed-sdk/workspace_tools/project.py +++ /dev/null @@ -1,196 +0,0 @@ -import sys -from os.path import join, abspath, dirname, exists -ROOT = abspath(join(dirname(__file__), "..")) -sys.path.insert(0, ROOT) - -from shutil import move, rmtree -from optparse import OptionParser - -from workspace_tools.paths import EXPORT_DIR, EXPORT_WORKSPACE, EXPORT_TMP -from workspace_tools.paths import MBED_BASE, MBED_LIBRARIES -from workspace_tools.export import export, setup_user_prj, EXPORTERS, mcu_ide_matrix -from workspace_tools.utils import args_error -from workspace_tools.tests import TESTS, Test, TEST_MAP -from workspace_tools.targets import TARGET_NAMES -from workspace_tools.libraries import LIBRARIES - -try: - import workspace_tools.private_settings as ps -except: - ps = object() - - -if __name__ == '__main__': - # Parse Options - parser = OptionParser() - - targetnames = TARGET_NAMES - targetnames.sort() - toolchainlist = EXPORTERS.keys() - toolchainlist.sort() - - parser.add_option("-m", "--mcu", - metavar="MCU", - default='LPC1768', - help="generate project for the given MCU (%s)"% ', '.join(targetnames)) - - parser.add_option("-i", - dest="ide", - default='uvision', - help="The target IDE: %s"% str(toolchainlist)) - - parser.add_option("-c", "--clean", - action="store_true", - default=False, - help="clean the export directory") - - parser.add_option("-p", - type="int", - dest="program", - help="The index of the desired test program: [0-%d]"% (len(TESTS)-1)) - - parser.add_option("-n", - dest="program_name", - help="The name of the desired test program") - - parser.add_option("-b", - dest="build", - action="store_true", - default=False, - help="use the mbed library build, instead of the sources") - - parser.add_option("-L", "--list-tests", - action="store_true", - dest="list_tests", - default=False, - help="list available programs in order and exit") - - parser.add_option("-S", "--list-matrix", - action="store_true", - dest="supported_ides", - default=False, - help="displays supported matrix of MCUs and IDEs") - - parser.add_option("-E", - action="store_true", - dest="supported_ides_html", - default=False, - help="writes workspace_tools/export/README.md") - - (options, args) = parser.parse_args() - - # Print available tests in order and exit - if options.list_tests is True: - print '\n'.join(map(str, sorted(TEST_MAP.values()))) - sys.exit() - - # Only prints matrix of supported IDEs - if options.supported_ides: - print mcu_ide_matrix() - exit(0) - - # Only prints matrix of supported IDEs - if options.supported_ides_html: - html = mcu_ide_matrix(verbose_html=True) - try: - with open("./export/README.md","w") as f: - f.write("Exporter IDE/Platform Support\n") - f.write("-----------------------------------\n") - f.write("\n") - f.write(html) - except IOError as e: - print "I/O error({0}): {1}".format(e.errno, e.strerror) - except: - print "Unexpected error:", sys.exc_info()[0] - raise - exit(0) - - # Clean Export Directory - if options.clean: - if exists(EXPORT_DIR): - rmtree(EXPORT_DIR) - - # Target - if options.mcu is None : - args_error(parser, "[ERROR] You should specify an MCU") - mcus = options.mcu - - # IDE - if options.ide is None: - args_error(parser, "[ERROR] You should specify an IDE") - ide = options.ide - - # Export results - successes = [] - failures = [] - - for mcu in mcus.split(','): - # Program Number or name - p, n = options.program, options.program_name - - if n is not None and p is not None: - args_error(parser, "[ERROR] specify either '-n' or '-p', not both") - if n: - if not n in TEST_MAP.keys(): - # Check if there is an alias for this in private_settings.py - if getattr(ps, "test_alias", None) is not None: - alias = ps.test_alias.get(n, "") - if not alias in TEST_MAP.keys(): - args_error(parser, "[ERROR] Program with name '%s' not found" % n) - else: - n = alias - else: - args_error(parser, "[ERROR] Program with name '%s' not found" % n) - p = TEST_MAP[n].n - if p is None or (p < 0) or (p > (len(TESTS)-1)): - message = "[ERROR] You have to specify one of the following tests:\n" - message += '\n'.join(map(str, sorted(TEST_MAP.values()))) - args_error(parser, message) - - # Project - if p is None or (p < 0) or (p > (len(TESTS)-1)): - message = "[ERROR] You have to specify one of the following tests:\n" - message += '\n'.join(map(str, sorted(TEST_MAP.values()))) - args_error(parser, message) - test = Test(p) - - # Some libraries have extra macros (called by exporter symbols) to we need to pass - # them to maintain compilation macros integrity between compiled library and - # header files we might use with it - lib_symbols = [] - for lib in LIBRARIES: - if lib['build_dir'] in test.dependencies: - lib_macros = lib.get('macros', None) - if lib_macros is not None: - lib_symbols.extend(lib_macros) - - if not options.build: - # Substitute the library builds with the sources - # TODO: Substitute also the other library build paths - if MBED_LIBRARIES in test.dependencies: - test.dependencies.remove(MBED_LIBRARIES) - test.dependencies.append(MBED_BASE) - - # Build the project with the same directory structure of the mbed online IDE - project_dir = join(EXPORT_WORKSPACE, test.id) - setup_user_prj(project_dir, test.source_dir, test.dependencies) - - # Export to selected toolchain - tmp_path, report = export(project_dir, test.id, ide, mcu, EXPORT_WORKSPACE, EXPORT_TMP, extra_symbols=lib_symbols) - if report['success']: - zip_path = join(EXPORT_DIR, "%s_%s_%s.zip" % (test.id, ide, mcu)) - move(tmp_path, zip_path) - successes.append("%s::%s\t%s"% (mcu, ide, zip_path)) - else: - failures.append("%s::%s\t%s"% (mcu, ide, report['errormsg'])) - - # Prints export results - print - if len(successes) > 0: - print "Successful exports:" - for success in successes: - print " * %s"% success - if len(failures) > 0: - print "Failed exports:" - for failure in failures: - print " * %s"% failure |