summaryrefslogtreecommitdiff
path: root/tools/buildman/board.py
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2013-10-10 16:00:20 (GMT)
committerSimon Glass <sjg@chromium.org>2013-11-21 20:35:58 (GMT)
commit8426d8b0899eb6a9845b3468662512a8da236241 (patch)
tree97d089ab015ba7fc0fef10b56e6e36002c908909 /tools/buildman/board.py
parent61242ac5f92604621deef16a4362948bafc757e4 (diff)
downloadu-boot-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.py12
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