Format and document options.py

pull/2458/head
Jimmy Brisson 2016-08-15 14:44:23 -05:00
parent 44efd92ca3
commit 33786130ae
1 changed files with 38 additions and 10 deletions

View File

@ -17,9 +17,16 @@ limitations under the License.
from argparse import ArgumentParser from argparse import ArgumentParser
from tools.toolchains import TOOLCHAINS from tools.toolchains import TOOLCHAINS
from tools.targets import TARGET_NAMES from tools.targets import TARGET_NAMES
from utils import argparse_force_uppercase_type, argparse_lowercase_hyphen_type, argparse_many from tools.utils import argparse_force_uppercase_type, \
argparse_lowercase_hyphen_type, argparse_many
def get_default_options_parser(add_clean=True, add_options=True): def get_default_options_parser(add_clean=True, add_options=True):
"""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() parser = ArgumentParser()
targetnames = TARGET_NAMES targetnames = TARGET_NAMES
@ -28,26 +35,47 @@ def get_default_options_parser(add_clean=True, add_options=True):
toolchainlist.sort() toolchainlist.sort()
parser.add_argument("-m", "--mcu", parser.add_argument("-m", "--mcu",
help="build for the given MCU (%s)" % ', '.join(targetnames), help=("build for the given MCU (%s)" %
metavar="MCU", ', '.join(targetnames)),
type=argparse_many(argparse_force_uppercase_type(targetnames, "MCU"))) metavar="MCU",
type=argparse_many(
argparse_force_uppercase_type(
targetnames, "MCU")))
parser.add_argument("-t", "--tool", parser.add_argument("-t", "--tool",
help="build using the given TOOLCHAIN (%s)" % ', '.join(toolchainlist), help=("build using the given TOOLCHAIN (%s)" %
metavar="TOOLCHAIN", ', '.join(toolchainlist)),
type=argparse_many(argparse_force_uppercase_type(toolchainlist, "toolchain"))) metavar="TOOLCHAIN",
type=argparse_many(
argparse_force_uppercase_type(
toolchainlist, "toolchain")))
parser.add_argument("--color", parser.add_argument("--color",
help="print Warnings, and Errors in color", help="print Warnings, and Errors in color",
action="store_true", default=False) 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: if add_clean:
parser.add_argument("-c", "--clean", action="store_true", default=False, parser.add_argument("-c", "--clean", action="store_true", default=False,
help="clean the build directory") help="clean the build directory")
if add_options: if add_options:
parser.add_argument("-o", "--options", action="append", 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")', help=('Add a build argument ("save-asm": save the '
type=argparse_lowercase_hyphen_type(['save-asm', 'debug-info', 'analyze'], "build option")) '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'],
"build option"))
return parser return parser