Skip to content

Commit cf8ab27

Browse files
author
Oren Cohen
committed
Add option to run on a single target
1 parent 7b44834 commit cf8ab27

File tree

1 file changed

+36
-12
lines changed

1 file changed

+36
-12
lines changed

tools/psa/release.py

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import subprocess
2020
import sys
2121
import shutil
22+
from argparse import ArgumentParser
2223

2324
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))
2425
sys.path.insert(0, ROOT)
@@ -41,14 +42,10 @@ def _psa_backend(target_name):
4142

4243

4344
def get_mbed_official_psa_release():
44-
psa_targets_release_dict = {
45-
'TFM': [],
46-
'MBED_SPM': []
47-
}
48-
45+
psa_targets_release_list = []
4946
psa_secure_targets = [t for t in TARGET_NAMES if Target.get_target(t).is_PSA_secure_target]
5047
for t in psa_secure_targets:
51-
psa_targets_release_dict[_psa_backend(t)].append(
48+
psa_targets_release_list.append(
5249
tuple(
5350
[
5451
TARGET_MAP[t].name,
@@ -57,7 +54,7 @@ def get_mbed_official_psa_release():
5754
)
5855
)
5956

60-
return psa_targets_release_dict
57+
return psa_targets_release_list
6158

6259

6360
def create_mbed_ignore(build_dir):
@@ -119,20 +116,47 @@ def build_tfm_platform(target, toolchain):
119116
])
120117

121118

119+
def build_psa_platform(target, toolchain):
120+
if _psa_backend(options.mcu) is 'TFM':
121+
build_tfm_platform(target, toolchain)
122+
else:
123+
build_mbed_spm_platform(target, toolchain)
124+
125+
126+
def get_parser():
127+
parser = ArgumentParser()
128+
parser.add_argument("-m", "--mcu",
129+
help="build for the given MCU",
130+
default='*',
131+
metavar="MCU")
132+
133+
return parser
134+
135+
136+
def filter_target(mcu):
137+
def filter_func(t):
138+
return t[0] == mcu
139+
140+
return filter_func
141+
142+
122143
def main():
144+
parser = get_parser()
145+
options = parser.parse_args()
123146
build_dir = os.path.join(ROOT, 'BUILD')
124147
if os.path.exists(build_dir):
125148
shutil.rmtree(build_dir)
126149

127150
os.makedirs(build_dir)
128151
create_mbed_ignore(build_dir)
152+
target_filter_function = None
153+
psa_platforms_list = get_mbed_official_psa_release()
129154

130-
psa_platforms_dict = get_mbed_official_psa_release()
131-
for target, toolchain in psa_platforms_dict['MBED_SPM']:
132-
build_mbed_spm_platform(target, toolchain)
155+
if options.mcu is not '*':
156+
target_filter_function = filter_target(options.mcu)
133157

134-
for target, toolchain in psa_platforms_dict['TFM']:
135-
build_tfm_platform(target, toolchain)
158+
for target, toolchain in filter(target_filter_function, psa_platforms_list):
159+
build_psa_platform(target, toolchain)
136160

137161

138162
if __name__ == '__main__':

0 commit comments

Comments
 (0)