Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Correct check for the ARM toolchain binary in the PATH. #10044

Merged
merged 1 commit into from Mar 14, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 10 additions & 3 deletions tools/build.py
Expand Up @@ -38,6 +38,7 @@
from tools.build_api import build_library, build_mbed_libs, build_lib
from tools.build_api import mcu_toolchain_matrix
from tools.build_api import print_build_results
from tools.build_api import get_toolchain_name
from tools.settings import CPPCHECK_CMD, CPPCHECK_MSG_FORMAT
from tools.settings import CPPCHECK_CMD, CPPCHECK_MSG_FORMAT, CLI_COLOR_MAP
from tools.notifier.term import TerminalNotifier
Expand Down Expand Up @@ -169,12 +170,18 @@
successes = []
skipped = []

toolchain_names = set()
for toolchain in toolchains:
if not TOOLCHAIN_CLASSES[toolchain].check_executable():
search_path = TOOLCHAIN_PATHS[toolchain] or "No path set"
for target_name in targets:
target = Target.get_target(target_name)
toolchain_names.add(get_toolchain_name(target, toolchain))

for toolchain_name in toolchain_names:
if not TOOLCHAIN_CLASSES[toolchain_name].check_executable():
search_path = TOOLCHAIN_PATHS[toolchain_name] or "No path set"
args_error(parser, "Could not find executable for %s.\n"
"Currently set search path: %s"
% (toolchain, search_path))
% (toolchain_name, search_path))

for toolchain in toolchains:
for target in targets:
Expand Down
11 changes: 7 additions & 4 deletions tools/make.py
Expand Up @@ -47,6 +47,7 @@
from tools.build_api import mcu_toolchain_list
from tools.build_api import mcu_target_list
from tools.build_api import merge_build_data
from tools.build_api import get_toolchain_name
from utils import argparse_filestring_type
from utils import argparse_many
from utils import argparse_dir_not_parent
Expand Down Expand Up @@ -308,7 +309,8 @@ def wrapped_build_project(src_dir, build_dir, mcu, *args, **kwargs):
args_error(parser, "argument -t/--tool is required")
toolchain = options.tool[0]

if Target.get_target(mcu).is_PSA_secure_target and \
target = Target.get_target(mcu)
if target.is_PSA_secure_target and \
not is_relative_to_root(options.source_dir):
options.source_dir = ROOT

Expand All @@ -321,11 +323,12 @@ def wrapped_build_project(src_dir, build_dir, mcu, *args, **kwargs):

notify = TerminalNotifier(options.verbose, options.silent, options.color)

if not TOOLCHAIN_CLASSES[toolchain].check_executable():
search_path = TOOLCHAIN_PATHS[toolchain] or "No path set"
toolchain_name = get_toolchain_name(target, toolchain)
if not TOOLCHAIN_CLASSES[toolchain_name].check_executable():
search_path = TOOLCHAIN_PATHS[toolchain_name] or "No path set"
args_error(parser, "Could not find executable for %s.\n"
"Currently set search path: %s"
%(toolchain, search_path))
%(toolchain_name, search_path))

if options.source_dir is not None:
wrapped_build_project(
Expand Down
12 changes: 7 additions & 5 deletions tools/test.py
Expand Up @@ -35,6 +35,7 @@
from tools.build_api import build_project, build_library
from tools.build_api import print_build_memory_usage
from tools.build_api import merge_build_data
from tools.build_api import get_toolchain_name
from tools.targets import TARGET_MAP
from tools.notifier.term import TerminalNotifier
from tools.utils import mkdir, ToolException, NotSupportedException, args_error, write_json_to_file
Expand Down Expand Up @@ -149,18 +150,20 @@
if options.mcu is None:
args_error(parser, "argument -m/--mcu is required")
mcu = extract_mcus(parser, options)[0]
mcu_secured = Target.get_target(mcu).is_PSA_secure_target
target = Target.get_target(mcu)
mcu_secured = target.is_PSA_secure_target

# Toolchain
if options.tool is None:
args_error(parser, "argument -t/--tool is required")
toolchain = options.tool[0]

if not TOOLCHAIN_CLASSES[toolchain].check_executable():
search_path = TOOLCHAIN_PATHS[toolchain] or "No path set"
toolchain_name = get_toolchain_name(target, toolchain)
if not TOOLCHAIN_CLASSES[toolchain_name].check_executable():
search_path = TOOLCHAIN_PATHS[toolchain_name] or "No path set"
args_error(parser, "Could not find executable for %s.\n"
"Currently set search path: %s"
% (toolchain, search_path))
% (toolchain_name, search_path))

# Assign config file. Precedence: test_config>app_config
# TODO: merge configs if both given
Expand Down Expand Up @@ -312,4 +315,3 @@
traceback.print_exc(file=sys.stdout)
print("[ERROR] %s" % str(e))
sys.exit(1)