[sdk/kde-builder] kde_builder_lib: refactor: Store explicit cmdline selectors in ModuleResolver
Andrew Shark <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 0ff5d413be800abe943f02eb0fbf70d19c8fed57 by Andrew Shark.
Committed on 19/07/2026 at 17:19.
Pushed by ashark into branch 'master'.
refactor: Store explicit cmdline selectors in ModuleResolver
M +3 -12 kde_builder_lib/application.py
M +15 -0 kde_builder_lib/module_resolver.py
https://invent.kde.org/sdk/kde-builder/-/commit/0ff5d413be800abe943f02eb0fbf70d19c8fed57
diff --git a/kde_builder_lib/application.py b/kde_builder_lib/application.py
index 4c4d02a1..3da12519 100644
--- a/kde_builder_lib/application.py
+++ b/kde_builder_lib/application.py
@@ -249,6 +249,7 @@ class Application:
module_resolver.handle_initial_projects()
module_resolver.ignored_selectors = ignored_selectors
module_resolver.expand_all_groups()
+ module_resolver.set_explicit_cmdline_selectors(cmdline_selectors)
self.module_resolver = module_resolver
@@ -289,16 +290,6 @@ class Application:
branch_group = ctx.get_option("branch-group")
self._warn_if_branch_group_does_not_exists(branch_group)
- explicit_kdeproject_selectors: list[str] = []
- explicit_thirdparty_selectors: list[str] = []
- proj_db = self.context.projects_db.repositories
- for el in cmdline_selectors:
- leaf = el.split("/")[-1]
- if leaf in proj_db:
- explicit_kdeproject_selectors.append(leaf)
- else:
- explicit_thirdparty_selectors.append(leaf)
-
filtered_modules: list[Module] = []
for module in modules:
if module.module_set and module.module_set.name in ["qt6-set"]:
@@ -318,7 +309,7 @@ class Application:
printpath = repopath
printpath = "y[" + printpath.replace("/", "]/y[") + "]"
message = f" y[*] Removing {printpath} due to branch-group"
- if module.name in explicit_kdeproject_selectors:
+ if module.name in module_resolver.explicit_kdeproject_selectors:
logger_app.warning(message)
else:
logger_app.debug(message)
@@ -354,7 +345,7 @@ class Application:
if module.name not in ignored_selectors and module_set_name not in ignored_selectors:
filtered_modules.append(module)
else:
- if module.name in [*explicit_kdeproject_selectors, *explicit_thirdparty_selectors]:
+ if module.name in [*module_resolver.explicit_kdeproject_selectors, *module_resolver.explicit_thirdparty_selectors]:
logger_app.warning(f" y[*] Project y[{module.name}] was explicitly selected in command line, but removed due to being ignored.")
else:
logger_app.debug(f"Project y[{module.name}] was removed due to being ignored.")
diff --git a/kde_builder_lib/module_resolver.py b/kde_builder_lib/module_resolver.py
index 04fd8af8..ab9a575a 100644
--- a/kde_builder_lib/module_resolver.py
+++ b/kde_builder_lib/module_resolver.py
@@ -62,6 +62,10 @@ class ModuleResolver:
self.defined_groups: dict[str, ModuleSet] = {}
"""Holds ModuleSet objects, created because of declared in "group <>" nodes in config."""
+ self.explicit_kdeproject_selectors: list[str] = []
+ self.explicit_group_selectors: list[str] = []
+ self.explicit_thirdparty_selectors: list[str] = []
+
def set_deferred_options(self, deferred_options: list[dict[str, str | dict]]) -> None:
"""
Set options to apply later if a module set resolves to a named module, used for "override" nodes.
@@ -230,6 +234,17 @@ class ModuleResolver:
self.defined_projects.update({project_result.name: project_result for project_result in project_results})
+ def set_explicit_cmdline_selectors(self, cmdline_selectors: list[str]) -> None:
+ proj_db = self.context.projects_db.repositories
+ for el in cmdline_selectors:
+ leaf = el.split("/")[-1]
+ if leaf in proj_db:
+ self.explicit_kdeproject_selectors.append(leaf)
+ elif leaf in self.defined_groups:
+ self.explicit_group_selectors.append(leaf)
+ else:
+ self.explicit_thirdparty_selectors.append(leaf)
+
def resolve_selectors_into_modules(self, selectors: list[str]) -> list[Module]:
"""
Resolve the given list of module selectors into :class:`Module` objects.