summaryrefslogtreecommitdiffstats
path: root/tmk_core/tool/mbed/mbed-sdk/workspace_tools/export/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/tool/mbed/mbed-sdk/workspace_tools/export/__init__.py')
-rwxr-xr-xtmk_core/tool/mbed/mbed-sdk/workspace_tools/export/__init__.py177
1 files changed, 0 insertions, 177 deletions
diff --git a/tmk_core/tool/mbed/mbed-sdk/workspace_tools/export/__init__.py b/tmk_core/tool/mbed/mbed-sdk/workspace_tools/export/__init__.py
deleted file mode 100755
index 18fa15a15..000000000
--- a/tmk_core/tool/mbed/mbed-sdk/workspace_tools/export/__init__.py
+++ /dev/null
@@ -1,177 +0,0 @@
-"""
-mbed SDK
-Copyright (c) 2011-2013 ARM Limited
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-"""
-import os, tempfile
-from os.path import join, exists, basename
-from shutil import copytree, rmtree, copy
-
-from workspace_tools.utils import mkdir
-from workspace_tools.export import uvision4, codesourcery, codered, gccarm, ds5_5, iar, emblocks, coide, kds, zip
-from workspace_tools.export.exporters import zip_working_directory_and_clean_up, OldLibrariesException
-from workspace_tools.targets import TARGET_NAMES, EXPORT_MAP
-
-EXPORTERS = {
- 'uvision': uvision4.Uvision4,
- 'lpcxpresso': codered.CodeRed,
- 'codesourcery': codesourcery.CodeSourcery,
- 'gcc_arm': gccarm.GccArm,
- 'ds5_5': ds5_5.DS5_5,
- 'iar': iar.IAREmbeddedWorkbench,
- 'emblocks' : emblocks.IntermediateFile,
- 'coide' : coide.CoIDE,
- 'kds' : kds.KDS,
-}
-
-ERROR_MESSAGE_UNSUPPORTED_TOOLCHAIN = """
-Sorry, the target %s is not currently supported on the %s toolchain.
-Please refer to <a href='/handbook/Exporting-to-offline-toolchains' target='_blank'>Exporting to offline toolchains</a> for more information.
-"""
-
-ERROR_MESSAGE_NOT_EXPORT_LIBS = """
-To export this project please <a href='http://mbed.org/compiler/?import=http://mbed.org/users/mbed_official/code/mbed-export/k&mode=lib' target='_blank'>import the export version of the mbed library</a>.
-"""
-
-def online_build_url_resolver(url):
- # TODO: Retrieve the path and name of an online library build URL
- return {'path':'', 'name':''}
-
-
-def export(project_path, project_name, ide, target, destination='/tmp/',
- tempdir=None, clean=True, extra_symbols=None, build_url_resolver=online_build_url_resolver):
- # Convention: we are using capitals for toolchain and target names
- if target is not None:
- target = target.upper()
-
- if tempdir is None:
- tempdir = tempfile.mkdtemp()
-
- report = {'success': False}
- if ide is None or ide == "zip":
- # Simple ZIP exporter
- try:
- ide = "zip"
- exporter = zip.ZIP(target, tempdir, project_name, build_url_resolver, extra_symbols=extra_symbols)
- exporter.scan_and_copy_resources(project_path, tempdir)
- exporter.generate()
- report['success'] = True
- except OldLibrariesException, e:
- report['errormsg'] = ERROR_MESSAGE_NOT_EXPORT_LIBS
- else:
- if ide not in EXPORTERS:
- report['errormsg'] = "Unsupported toolchain"
- else:
- Exporter = EXPORTERS[ide]
- target = EXPORT_MAP.get(target, target)
- if target not in Exporter.TARGETS:
- report['errormsg'] = ERROR_MESSAGE_UNSUPPORTED_TOOLCHAIN % (target, ide)
- else:
- try:
- exporter = Exporter(target, tempdir, project_name, build_url_resolver, extra_symbols=extra_symbols)
- exporter.scan_and_copy_resources(project_path, tempdir)
- exporter.generate()
- report['success'] = True
- except OldLibrariesException, e:
- report['errormsg'] = ERROR_MESSAGE_NOT_EXPORT_LIBS
-
- zip_path = None
- if report['success']:
- # add readme file to every offline export.
- open(os.path.join(tempdir, 'GettingStarted.htm'),'w').write('<meta http-equiv="refresh" content="0; url=http://mbed.org/handbook/Getting-Started-mbed-Exporters#%s"/>'% (ide))
- # copy .hgignore file to exported direcotry as well.
- copy(os.path.join(exporter.TEMPLATE_DIR,'.hgignore'),tempdir)
- zip_path = zip_working_directory_and_clean_up(tempdir, destination, project_name, clean)
-
- return zip_path, report
-
-
-###############################################################################
-# Generate project folders following the online conventions
-###############################################################################
-def copy_tree(src, dst, clean=True):
- if exists(dst):
- if clean:
- rmtree(dst)
- else:
- return
-
- copytree(src, dst)
-
-
-def setup_user_prj(user_dir, prj_path, lib_paths=None):
- """
- Setup a project with the same directory structure of the mbed online IDE
- """
- mkdir(user_dir)
-
- # Project Path
- copy_tree(prj_path, join(user_dir, "src"))
-
- # Project Libraries
- user_lib = join(user_dir, "lib")
- mkdir(user_lib)
-
- if lib_paths is not None:
- for lib_path in lib_paths:
- copy_tree(lib_path, join(user_lib, basename(lib_path)))
-
-def mcu_ide_matrix(verbose_html=False, platform_filter=None):
- """ Shows target map using prettytable """
- supported_ides = []
- for key in EXPORTERS.iterkeys():
- supported_ides.append(key)
- supported_ides.sort()
- from prettytable import PrettyTable, ALL # Only use it in this function so building works without extra modules
-
- # All tests status table print
- columns = ["Platform"] + supported_ides
- pt = PrettyTable(columns)
- # Align table
- for col in columns:
- pt.align[col] = "c"
- pt.align["Platform"] = "l"
-
- perm_counter = 0
- target_counter = 0
- for target in sorted(TARGET_NAMES):
- target_counter += 1
-
- row = [target] # First column is platform name
- for ide in supported_ides:
- text = "-"
- if target in EXPORTERS[ide].TARGETS:
- if verbose_html:
- text = "&#10003;"
- else:
- text = "x"
- perm_counter += 1
- row.append(text)
- pt.add_row(row)
-
- pt.border = True
- pt.vrules = ALL
- pt.hrules = ALL
- # creates a html page suitable for a browser
- # result = pt.get_html_string(format=True) if verbose_html else pt.get_string()
- # creates a html page in a shorter format suitable for readme.md
- result = pt.get_html_string() if verbose_html else pt.get_string()
- result += "\n"
- result += "Total IDEs: %d\n"% (len(supported_ides))
- if verbose_html: result += "<br>"
- result += "Total platforms: %d\n"% (target_counter)
- if verbose_html: result += "<br>"
- result += "Total permutations: %d"% (perm_counter)
- if verbose_html: result = result.replace("&amp;", "&")
- return result