diff options
author | Stephen Warren <swarren@nvidia.com> | 2013-10-10 16:00:20 (GMT) |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2013-11-21 20:35:58 (GMT) |
commit | 8426d8b0899eb6a9845b3468662512a8da236241 (patch) | |
tree | 97d089ab015ba7fc0fef10b56e6e36002c908909 /tools/buildman/board.py | |
parent | 61242ac5f92604621deef16a4362948bafc757e4 (diff) | |
download | u-boot-fsl-qoriq-8426d8b0899eb6a9845b3468662512a8da236241.tar.xz |
buildman: make board selector argument a regex
A common use-case is to build all boards for a particular SoC. This can
be achieved by:
./tools/buildman/buildman -b mainline_dev tegra20
However, when the SoC is a member of a family of SoCs, and each SoC has
a different name, it would be even more useful to build all boards for
every SoC in that family. This currently isn't possible since buildman's
board selection command-line arguments are compared to board definitions
using pure string equality.
To enable this, compare using a regex match instead. This matches
MAKEALL's handling of command-line arguments. This enables:
(all Tegra)
./tools/buildman/buildman -b mainline_dev tegra
(all Tegra)
./tools/buildman/buildman -b mainline_dev '^tegra.*$'
(all Tegra20, Tegra30 boards, but not Tegra114)
./tools/buildman/buildman -b mainline_dev 'tegra[23]'
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/buildman/board.py')
-rw-r--r-- | tools/buildman/board.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/buildman/board.py b/tools/buildman/board.py index 1d3db20..5172a47 100644 --- a/tools/buildman/board.py +++ b/tools/buildman/board.py @@ -3,6 +3,8 @@ # SPDX-License-Identifier: GPL-2.0+ # +import re + class Board: """A particular board that we can build""" def __init__(self, status, arch, cpu, soc, vendor, board_name, target, options): @@ -135,14 +137,22 @@ class Boards: due to each argument, arranged by argument. """ result = {} + argres = {} for arg in args: result[arg] = 0 + argres[arg] = re.compile(arg) result['all'] = 0 for board in self._boards: if args: for arg in args: - if arg in board.props: + argre = argres[arg] + match = False + for prop in board.props: + match = argre.match(prop) + if match: + break + if match: if not board.build_it: board.build_it = True result[arg] += 1 |