Skip to content

Commit 047b3b2

Browse files
authored
Merge pull request #2008 from mbedmicro/revert-1976-memap-args
Revert "Generalize flag handling"
2 parents e508525 + 33cec19 commit 047b3b2

File tree

13 files changed

+464
-492
lines changed

13 files changed

+464
-492
lines changed

tools/build.py

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -35,134 +35,149 @@
3535
from tools.build_api import static_analysis_scan, static_analysis_scan_lib, static_analysis_scan_library
3636
from tools.build_api import print_build_results
3737
from tools.settings import CPPCHECK_CMD, CPPCHECK_MSG_FORMAT
38-
from utils import argparse_filestring_type
3938

4039
if __name__ == '__main__':
4140
start = time()
4241

4342
# Parse Options
4443
parser = get_default_options_parser()
4544

46-
parser.add_argument("--source", dest="source_dir", type=argparse_filestring_type,
47-
default=None, help="The source (input) directory", nargs="*")
45+
parser.add_option("--source", dest="source_dir",
46+
default=None, help="The source (input) directory", action="append")
4847

49-
parser.add_argument("--build", dest="build_dir", type=argparse_filestring_type,
48+
parser.add_option("--build", dest="build_dir",
5049
default=None, help="The build (output) directory")
5150

52-
parser.add_argument("--no-archive", dest="no_archive", action="store_true",
51+
parser.add_option("--no-archive", dest="no_archive", action="store_true",
5352
default=False, help="Do not produce archive (.ar) file, but rather .o")
5453

5554
# Extra libraries
56-
parser.add_argument("-r", "--rtos",
55+
parser.add_option("-r", "--rtos",
5756
action="store_true",
5857
dest="rtos",
5958
default=False,
6059
help="Compile the rtos")
6160

62-
parser.add_argument("--rpc",
61+
parser.add_option("--rpc",
6362
action="store_true",
6463
dest="rpc",
6564
default=False,
6665
help="Compile the rpc library")
6766

68-
parser.add_argument("-e", "--eth",
67+
parser.add_option("-e", "--eth",
6968
action="store_true", dest="eth",
7069
default=False,
7170
help="Compile the ethernet library")
7271

73-
parser.add_argument("-U", "--usb_host",
72+
parser.add_option("-U", "--usb_host",
7473
action="store_true",
7574
dest="usb_host",
7675
default=False,
7776
help="Compile the USB Host library")
7877

79-
parser.add_argument("-u", "--usb",
78+
parser.add_option("-u", "--usb",
8079
action="store_true",
8180
dest="usb",
8281
default=False,
8382
help="Compile the USB Device library")
8483

85-
parser.add_argument("-d", "--dsp",
84+
parser.add_option("-d", "--dsp",
8685
action="store_true",
8786
dest="dsp",
8887
default=False,
8988
help="Compile the DSP library")
9089

91-
parser.add_argument("-F", "--fat",
90+
parser.add_option("-F", "--fat",
9291
action="store_true",
9392
dest="fat",
9493
default=False,
9594
help="Compile FS and SD card file system library")
9695

97-
parser.add_argument("-b", "--ublox",
96+
parser.add_option("-b", "--ublox",
9897
action="store_true",
9998
dest="ublox",
10099
default=False,
101100
help="Compile the u-blox library")
102101

103-
parser.add_argument( "--cpputest",
102+
parser.add_option("", "--cpputest",
104103
action="store_true",
105104
dest="cpputest_lib",
106105
default=False,
107106
help="Compiles 'cpputest' unit test library (library should be on the same directory level as mbed repository)")
108107

109-
parser.add_argument("-D",
110-
nargs="*",
108+
parser.add_option("-D", "",
109+
action="append",
111110
dest="macros",
112111
help="Add a macro definition")
113112

114-
parser.add_argument("-S", "--supported-toolchains",
113+
parser.add_option("-S", "--supported-toolchains",
115114
action="store_true",
116115
dest="supported_toolchains",
117116
default=False,
118117
help="Displays supported matrix of MCUs and toolchains")
119118

120-
parser.add_argument('-f', '--filter',
119+
parser.add_option('-f', '--filter',
121120
dest='general_filter_regex',
122121
default=None,
123122
help='For some commands you can use filter to filter out results')
124123

125-
parser.add_argument("--cppcheck",
124+
parser.add_option("", "--cppcheck",
126125
action="store_true",
127126
dest="cppcheck_validation",
128127
default=False,
129128
help="Forces 'cppcheck' static code analysis")
130129

131-
parser.add_argument("-j", "--jobs", type=int, dest="jobs",
130+
parser.add_option("-j", "--jobs", type="int", dest="jobs",
132131
default=0, help="Number of concurrent jobs. Default: 0/auto (based on host machine's number of CPUs)")
133-
parser.add_argument("-N", "--artifact-name", dest="artifact_name",
132+
parser.add_option("-N", "--artifact-name", dest="artifact_name",
134133
default=None, help="The built project's name")
135134

136-
parser.add_argument("-v", "--verbose",
135+
parser.add_option("-v", "--verbose",
137136
action="store_true",
138137
dest="verbose",
139138
default=False,
140139
help="Verbose diagnostic output")
141140

142-
parser.add_argument("--silent",
141+
parser.add_option("--silent",
143142
action="store_true",
144143
dest="silent",
145144
default=False,
146145
help="Silent diagnostic output (no copy, compile notification)")
147146

148-
parser.add_argument("-x", "--extra-verbose-notifications",
147+
parser.add_option("-x", "--extra-verbose-notifications",
149148
action="store_true",
150149
dest="extra_verbose_notify",
151150
default=False,
152151
help="Makes compiler more verbose, CI friendly.")
153152

154-
options = parser.parse_args()
153+
(options, args) = parser.parse_args()
155154

156155
# Only prints matrix of supported toolchains
157156
if options.supported_toolchains:
158157
print mcu_toolchain_matrix(platform_filter=options.general_filter_regex)
159158
exit(0)
160159

161160
# Get target list
162-
targets = options.mcu if options.mcu else TARGET_NAMES
161+
if options.mcu:
162+
mcu_list = (options.mcu).split(",")
163+
for mcu in mcu_list:
164+
if mcu not in TARGET_NAMES:
165+
print "Given MCU '%s' not into the supported list:\n%s" % (mcu, TARGET_NAMES)
166+
sys.exit(1)
167+
targets = mcu_list
168+
else:
169+
targets = TARGET_NAMES
163170

164171
# Get toolchains list
165-
toolchains = options.tool if options.tool else TOOLCHAINS
172+
if options.tool:
173+
toolchain_list = (options.tool).split(",")
174+
for tc in toolchain_list:
175+
if tc not in TOOLCHAINS:
176+
print "Given toolchain '%s' not into the supported list:\n%s" % (tc, TOOLCHAINS)
177+
sys.exit(1)
178+
toolchains = toolchain_list
179+
else:
180+
toolchains = TOOLCHAINS
166181

167182
# Get libraries list
168183
libraries = []

tools/detect_targets.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,24 @@
4242
# Parse Options
4343
parser = get_default_options_parser()
4444

45-
parser.add_argument("-S", "--supported-toolchains",
45+
parser.add_option("-S", "--supported-toolchains",
4646
action="store_true",
4747
dest="supported_toolchains",
4848
default=False,
4949
help="Displays supported matrix of targets and toolchains")
5050

51-
parser.add_argument('-f', '--filter',
51+
parser.add_option('-f', '--filter',
5252
dest='general_filter_regex',
5353
default=None,
5454
help='Filter targets')
5555

56-
parser.add_argument("-v", "--verbose",
56+
parser.add_option("-v", "--verbose",
5757
action="store_true",
5858
dest="verbose",
5959
default=False,
6060
help="Verbose diagnostic output")
6161

62-
options = parser.parse_args()
62+
(options, args) = parser.parse_args()
6363

6464
# Only prints matrix of supported toolchains
6565
if options.supported_toolchains:

tools/get_config.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
from tools.options import get_default_options_parser
2929
from tools.build_api import get_config
3030
from config import Config
31-
from utils import argparse_filestring_type
3231
try:
3332
import tools.private_settings as ps
3433
except:
@@ -37,15 +36,19 @@
3736
if __name__ == '__main__':
3837
# Parse Options
3938
parser = get_default_options_parser(add_clean=False, add_options=False)
40-
parser.add_argument("--source", dest="source_dir", type=argparse_filestring_type,
41-
default=[], help="The source (input) directory", nargs="*")
42-
parser.add_argument("--prefix", dest="prefix", nargs="*",
43-
default=[], help="Restrict listing to parameters that have this prefix")
44-
parser.add_argument("-v", "--verbose", action="store_true", dest="verbose",
39+
parser.add_option("--source", dest="source_dir",
40+
default=None, help="The source (input) directory", action="append")
41+
parser.add_option("--prefix", dest="prefix", action="append",
42+
default=None, help="Restrict listing to parameters that have this prefix")
43+
parser.add_option("-v", "--verbose", action="store_true", dest="verbose",
4544
default=False, help="Verbose diagnostic output")
4645

47-
options = parser.parse_args()
46+
(options, args) = parser.parse_args()
4847

48+
for path in options.source_dir :
49+
if not isdir(path) :
50+
args_error(parser, "[ERROR] you passed \"{}\" to --source, which does not exist".
51+
format(path))
4952
# Target
5053
if options.mcu is None :
5154
args_error(parser, "[ERROR] You should specify an MCU")

0 commit comments

Comments
 (0)