lib.toolchain: partially support bricks
Partial support of bricks by cros_setup_toolchains.py.
cros_setup_toolchains can now detect the architecture for a given brick
when --show-cfg is set to a brick locator.
BUG=brillo:547
TEST=`cros_setup_toolchain --brick=board:gizmo` works
CQ-DEPEND=CL:257473
Change-Id: I9428e03634bb0dcb9e2b38eec67505b84a1e5bc7
Reviewed-on: https://chromium-review.googlesource.com/258522
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Bertrand Simonnet <bsimonnet@chromium.org>
Trybot-Ready: Bertrand Simonnet <bsimonnet@chromium.org>
Tested-by: Bertrand Simonnet <bsimonnet@chromium.org>
diff --git a/scripts/cros_setup_toolchains.py b/scripts/cros_setup_toolchains.py
index a081df7..48b4650 100644
--- a/scripts/cros_setup_toolchains.py
+++ b/scripts/cros_setup_toolchains.py
@@ -12,6 +12,7 @@
import os
from chromite.cbuildbot import constants
+from chromite.lib import brick_lib
from chromite.lib import commandline
from chromite.lib import cros_build_lib
from chromite.lib import osutils
@@ -575,13 +576,16 @@
RebuildLibtool()
-def ShowBoardConfig(board):
- """Show the toolchain tuples used by |board|
+def ShowConfig(name):
+ """Show the toolchain tuples used by |name|
Args:
- board: The board to query.
+ name: The board name or brick locator to query.
"""
- toolchains = toolchain.GetToolchainsForBoard(board)
+ if brick_lib.IsLocator(name):
+ toolchains = toolchain.GetToolchainsForBrick(name)
+ else:
+ toolchains = toolchain.GetToolchainsForBoard(name)
# Make sure we display the default toolchain first.
print(','.join(
toolchain.FilterToolchains(toolchains, 'default', True).keys() +
@@ -1000,9 +1004,9 @@
dest='hostonly', default=False, action='store_true',
help='Only setup the host toolchain. '
'Useful for bootstrapping chroot')
- parser.add_argument('--show-board-cfg',
- dest='board_cfg', default=None,
- help='Board to list toolchain tuples for')
+ parser.add_argument('--show-board-cfg', '--show-cfg',
+ dest='cfg_name', default=None,
+ help='Board or brick to list toolchains tuples for')
parser.add_argument('--create-packages',
action='store_true', default=False,
help='Build redistributable packages')
@@ -1015,15 +1019,15 @@
options.Freeze()
# Figure out what we're supposed to do and reject conflicting options.
- if options.board_cfg and options.create_packages:
+ if options.cfg_name and options.create_packages:
parser.error('conflicting options: create-packages & show-board-cfg')
targets = set(options.targets.split(','))
boards = (set(options.include_boards.split(',')) if options.include_boards
else set())
- if options.board_cfg:
- ShowBoardConfig(options.board_cfg)
+ if options.cfg_name:
+ ShowConfig(options.cfg_name)
elif options.create_packages:
cros_build_lib.AssertInsideChroot()
Crossdev.Load(False)