diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2024-01-29 13:13:56 -0800 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2024-11-15 11:32:50 -0800 |
| commit | f1a09aabf129d95bca6f2493e6a6899e17fa4d33 (patch) | |
| tree | 29d621ce9bedb55cfaeb6807e81ea029fa72a35f | |
| parent | 67ea6d4e7915d4189460cc00c4eef43aca4adade (diff) | |
| download | meson-f1a09aabf129d95bca6f2493e6a6899e17fa4d33.tar.gz | |
build: store Build.modules as a set
Since it's only used to check membership, a set makes more sense. Also
add some documentation to the attribute
| -rw-r--r-- | mesonbuild/build.py | 6 | ||||
| -rw-r--r-- | mesonbuild/interpreter/interpreter.py | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 460ed549b..0d9374d40 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -275,7 +275,11 @@ class Build: self.dependency_overrides: PerMachine[T.Dict[T.Tuple, DependencyOverride]] = PerMachineDefaultable.default( environment.is_cross_build(), {}, {}) self.devenv: T.List[EnvironmentVariables] = [] - self.modules: T.List[str] = [] + self.modules: T.Set[str] = set() + """Used to track which modules are enabled in all subprojects. + + Needed for tracking whether a modules options needs to be exposed to the user. + """ def get_build_targets(self): build_targets = OrderedDict() diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index d7523e7ea..dd73522a0 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -632,8 +632,8 @@ class Interpreter(InterpreterBase, HoldableObject): ext_module = NotFoundExtensionModule(real_modname) else: ext_module = module.initialize(self) - assert isinstance(ext_module, (ExtensionModule, NewExtensionModule)), 'for mypy' - self.build.modules.append(real_modname) + assert isinstance(ext_module, (ExtensionModule, NewExtensionModule)) + self.build.modules.add(real_modname) if ext_module.INFO.added: FeatureNew.single_use(f'module {ext_module.INFO.name}', ext_module.INFO.added, self.subproject, location=node) if ext_module.INFO.deprecated: |
