nkjnm

Dependencies:   MAX44000 nexpaq_mdk

Fork of LED_Demo by Maxim nexpaq

Revision:
1:55a6170b404f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbd_os/tools/options.py	Sat Sep 17 16:32:05 2016 +0000
@@ -0,0 +1,90 @@
+"""
+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.
+"""
+from argparse import ArgumentParser
+from tools.toolchains import TOOLCHAINS
+from tools.targets import TARGET_NAMES
+from tools.utils import argparse_force_uppercase_type, \
+    argparse_lowercase_hyphen_type, argparse_many, \
+    argparse_filestring_type
+
+def get_default_options_parser(add_clean=True, add_options=True,
+                               add_app_config=False):
+    """Create a new options parser with the default compiler options added
+
+    Keyword arguments:
+    add_clean - add the clean argument?
+    add_options - add the options argument?
+    """
+    parser = ArgumentParser()
+
+    targetnames = TARGET_NAMES
+    targetnames.sort()
+    toolchainlist = list(TOOLCHAINS)
+    toolchainlist.sort()
+
+    parser.add_argument("-m", "--mcu",
+                        help=("build for the given MCU (%s)" %
+                              ', '.join(targetnames)),
+                        metavar="MCU",
+                        type=argparse_many(
+                            argparse_force_uppercase_type(
+                                targetnames, "MCU")))
+
+    parser.add_argument("-t", "--tool",
+                        help=("build using the given TOOLCHAIN (%s)" %
+                              ', '.join(toolchainlist)),
+                        metavar="TOOLCHAIN",
+                        type=argparse_many(
+                            argparse_force_uppercase_type(
+                                toolchainlist, "toolchain")))
+
+    parser.add_argument("--color",
+                        help="print Warnings, and Errors in color",
+                        action="store_true", default=False)
+
+    parser.add_argument("--cflags", default=[], action="append",
+                        help="Extra flags to provide to the C compiler")
+
+    parser.add_argument("--asmflags", default=[], action="append",
+                        help="Extra flags to provide to the assembler")
+
+    parser.add_argument("--ldflags", default=[], action="append",
+                        help="Extra flags to provide to the linker")
+
+    if add_clean:
+        parser.add_argument("-c", "--clean", action="store_true", default=False,
+                            help="clean the build directory")
+
+    if add_options:
+        parser.add_argument("-o", "--options", action="append",
+                            help=('Add a build argument ("save-asm": save the '
+                                  'asm generated by the compiler, "debug-info":'
+                                  ' generate debugging information, "analyze": '
+                                  'run Goanna static code analyzer")'),
+                            type=argparse_lowercase_hyphen_type(['save-asm',
+                                                                 'debug-info',
+                                                                 'analyze',
+                                                                 'small-lib',
+                                                                 'std-lib'],
+                                                                "build option"))
+
+    if add_app_config:
+        parser.add_argument("--app-config", default=None, dest="app_config",
+                            type=argparse_filestring_type,
+                            help="Path of an app configuration file (Default is to look for 'mbed_app.json')")
+
+    return parser