
This is useful for some tools and is easily available for buildman. Add a new --print-arch option.
Signed-off-by: Simon Glass sjg@chromium.org ---
Changes in v2: - Add new patch to print the architecture for a board
tools/buildman/cmdline.py | 2 ++ tools/buildman/control.py | 24 ++++++++++++++++++++++++ tools/buildman/func_test.py | 7 +++++++ 3 files changed, 33 insertions(+)
diff --git a/tools/buildman/cmdline.py b/tools/buildman/cmdline.py index e295c7aef1a0..41384840427a 100644 --- a/tools/buildman/cmdline.py +++ b/tools/buildman/cmdline.py @@ -119,6 +119,8 @@ def add_after_m(parser): default=False, help="Use full toolchain path in CROSS_COMPILE") parser.add_argument('-P', '--per-board-out-dir', action='store_true', default=False, help="Use an O= (output) directory per board rather than per thread") + parser.add_argument('--print-arch', action='store_true', + default=False, help="Print the architecture for a board (ARCH=)") parser.add_argument('-r', '--reproducible-builds', action='store_true', help='Set SOURCE_DATE_EPOCH=0 to suuport a reproducible build') parser.add_argument('-R', '--regen-board-list', type=str, diff --git a/tools/buildman/control.py b/tools/buildman/control.py index 4306d4eb2a7c..8a29534d602f 100644 --- a/tools/buildman/control.py +++ b/tools/buildman/control.py @@ -140,6 +140,26 @@ def show_toolchain_prefix(brds, toolchains): tchain = tc_set.pop() print(tchain.GetEnvArgs(toolchain.VAR_CROSS_COMPILE))
+def show_arch(brds): + """Show information about a the architecture used by one or more boards + + The function checks that all boards use the same architecture, then prints + the correct value for ARCH. + + Args: + boards: Boards object containing selected boards + + Return: + None on success, string error message otherwise + """ + board_selected = brds.get_selected_dict() + arch_set = set() + for brd in board_selected.values(): + arch_set.add(brd.arch) + if len(arch_set) != 1: + sys.exit('Supplied boards must share one arch') + print(arch_set.pop()) + def get_allow_missing(opt_allow, opt_no_allow, num_selected, has_branch): """Figure out whether to allow external blobs
@@ -597,6 +617,10 @@ def do_buildman(args, toolchains=None, make_func=None, brds=None, show_toolchain_prefix(brds, toolchains) return 0
+ if args.print_arch: + show_arch(brds) + return 0 + series = determine_series(selected, col, git_dir, args.count, args.branch, args.work_in_output)
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py index aa0838538d23..d89bde1d95e2 100644 --- a/tools/buildman/func_test.py +++ b/tools/buildman/func_test.py @@ -812,3 +812,10 @@ CONFIG_LOCALVERSION=y
self._RunControl('--boards', 'board1,board2', '--boards', 'board4') self.assertEqual(3, self._builder.count) + + def test_print_arch(self): + """Test that we can print the board architecture""" + with test_util.capture_sys_output() as (stdout, stderr): + result = self._RunControl('--print-arch', 'board0') + self.assertEqual('arm\n', stdout.getvalue()) + self.assertEqual('', stderr.getvalue())