summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Bettis <jbettis@google.com>2022-05-09 13:40:34 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-05-11 17:13:26 +0000
commit6f8dab1033786ac7071e48bc68add2b5ac271c82 (patch)
tree6a44409ebd918d57ee0d824e7d301284c375eb3d
parenta8681cd85dc020634ba0f5f5ee58ccf32492694e (diff)
downloadchrome-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.py12
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