diff options
author | Simon Glass <sjg@chromium.org> | 2014-08-28 09:43:41 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2014-09-05 13:40:43 -0600 |
commit | 3cf4ae6f8672cd10ddba4b18bf82e4d03aeb15e6 (patch) | |
tree | c346c3bee954f28ce52ccef7ccd30ce2f747f331 /tools/buildman/board.py | |
parent | f60c9d4f39f8ca8948594a773eee43543ca37807 (diff) | |
download | u-boot-imx-3cf4ae6f8672cd10ddba4b18bf82e4d03aeb15e6.zip u-boot-imx-3cf4ae6f8672cd10ddba4b18bf82e4d03aeb15e6.tar.gz u-boot-imx-3cf4ae6f8672cd10ddba4b18bf82e4d03aeb15e6.tar.bz2 |
buildman: Implement an option to exclude boards from the build
Some boards are known to be broken and it is convenient to be able to
exclude them from the build.
Add an --exclude option to specific boards to exclude. This uses the
same matching rules as the normal 'include' arguments, and is a comma-
separated list of regular expressions.
Suggested-by: York Sun <yorksun@freescale.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/buildman/board.py')
-rw-r--r-- | tools/buildman/board.py | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/tools/buildman/board.py b/tools/buildman/board.py index a333287..5d536d5 100644 --- a/tools/buildman/board.py +++ b/tools/buildman/board.py @@ -239,13 +239,14 @@ class Boards: terms.append(term) return terms - def SelectBoards(self, args): + def SelectBoards(self, args, exclude=[]): """Mark boards selected based on args Args: - List of strings specifying boards to include, either named, or - by their target, architecture, cpu, vendor or soc. If empty, all - boards are selected. + args: List of strings specifying boards to include, either named, + or by their target, architecture, cpu, vendor or soc. If + empty, all boards are selected. + exclude: List of boards to exclude, regardless of 'args' Returns: Dictionary which holds the number of boards which were selected @@ -258,17 +259,33 @@ class Boards: for term in terms: result[str(term)] = 0 + exclude_list = [] + for expr in exclude: + exclude_list.append(Expr(expr)) + for board in self._boards: + matching_term = None + build_it = False if terms: match = False for term in terms: if term.Matches(board.props): - board.build_it = True - result[str(term)] += 1 - result['all'] += 1 + matching_term = str(term) + build_it = True break else: + build_it = True + + # Check that it is not specifically excluded + for expr in exclude_list: + if expr.Matches(board.props): + build_it = False + break + + if build_it: board.build_it = True + if matching_term: + result[matching_term] += 1 result['all'] += 1 return result |