diff options
author | Jeremy Bettis <jbettis@google.com> | 2022-05-09 13:40:34 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-05-11 17:13:26 +0000 |
commit | 6f8dab1033786ac7071e48bc68add2b5ac271c82 (patch) | |
tree | 6a44409ebd918d57ee0d824e7d301284c375eb3d | |
parent | a8681cd85dc020634ba0f5f5ee58ccf32492694e (diff) | |
download | chrome-ec-6f8dab1033786ac7071e48bc68add2b5ac271c82.tar.gz |
zmake: Don't allow duplicate projects
If you call zmake with the same project name multiple times, it would
actually build it multiple times, this is a big problem if you use zmake
-j.
Change _resolve_projects to return a set instead of a list.
BRANCH=None
BUG=b:178196029
TEST=zmake -j100 build -B build brya brya
Signed-off-by: Jeremy Bettis <jbettis@google.com>
Change-Id: Ib9bbabe4e96a186731a3c15256558b3e9a3923d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3636183
Tested-by: Jeremy Bettis <jbettis@chromium.org>
Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
Commit-Queue: Al Semjonovs <asemjonovs@google.com>
Reviewed-by: Al Semjonovs <asemjonovs@google.com>
-rw-r--r-- | zephyr/zmake/zmake/zmake.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/zephyr/zmake/zmake/zmake.py b/zephyr/zmake/zmake/zmake.py index 73df878f1d..aa0687d51f 100644 --- a/zephyr/zmake/zmake/zmake.py +++ b/zephyr/zmake/zmake/zmake.py @@ -12,7 +12,7 @@ import re import shutil import subprocess import uuid -from typing import Dict, List, Optional, Union +from typing import Dict, Optional, Set, Union import zmake.build_config import zmake.generate_readme @@ -199,21 +199,21 @@ class Zmake: def _resolve_projects( self, project_names, all_projects=False, host_tests_only=False - ) -> List[zmake.project.Project]: + ) -> Set[zmake.project.Project]: """Finds all projects for the specified command line flags. Returns a list of projects. """ found_projects = zmake.project.find_projects(self.module_paths["ec"] / "zephyr") if all_projects: - projects = list(found_projects.values()) + projects = set(found_projects.values()) elif host_tests_only: - projects = [p for p in found_projects.values() if p.config.is_test] + projects = {p for p in found_projects.values() if p.config.is_test} else: - projects = [] + projects = set() for project_name in project_names: try: - projects.append(found_projects[project_name]) + projects.add(found_projects[project_name]) except KeyError as e: raise KeyError("No project named {}".format(project_name)) from e return projects |