summaryrefslogtreecommitdiff
path: root/mesonbuild/modules/__init__.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-10-26 08:36:16 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2025-12-22 11:58:30 +0100
commitecc8032dcb7cd5fc8c3b8e468818ca235cfa9ff4 (patch)
tree6f76f599281f8016c6bd94512b83624dcf9e9a1c /mesonbuild/modules/__init__.py
parent5de9723535506f625e093cbf9549b3ce0bf5940f (diff)
downloadmeson-ecc8032dcb7cd5fc8c3b8e468818ca235cfa9ff4.tar.gz
modules: rust: implement workspace.subproject() and package.dependency()
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/modules/__init__.py')
-rw-r--r--mesonbuild/modules/__init__.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
index 3ff9368d9..ed8deff06 100644
--- a/mesonbuild/modules/__init__.py
+++ b/mesonbuild/modules/__init__.py
@@ -7,7 +7,7 @@ from __future__ import annotations
import dataclasses
import typing as T
-from .. import build, mesonlib
+from .. import build, dependencies, mesonlib
from ..options import OptionKey
from ..build import IncludeDirs
from ..interpreterbase.decorators import noKwargs, noPosargs
@@ -46,6 +46,7 @@ class ModuleState:
# The backend object is under-used right now, but we will need it:
# https://github.com/mesonbuild/meson/issues/1419
self.backend = interpreter.backend
+ self.dependency_overrides = interpreter.build.dependency_overrides
self.targets = interpreter.build.targets
self.data = interpreter.build.data
self.headers = interpreter.build.get_headers()
@@ -108,6 +109,13 @@ class ModuleState:
# Normal program lookup
return self.find_program(name, required=required, wanted=wanted)
+ def overridden_dependency(self, depname: str, for_machine: MachineChoice = MachineChoice.HOST) -> Dependency:
+ identifier = dependencies.get_dep_identifier(depname, {})
+ try:
+ return self.dependency_overrides[for_machine][identifier].dep
+ except KeyError:
+ raise mesonlib.MesonException(f'dependency "{depname}" was not overridden for the {for_machine}')
+
def dependency(self, depname: str, native: bool = False, required: bool = True,
wanted: T.Optional[str] = None) -> 'Dependency':
kwargs: T.Dict[str, object] = {'native': native, 'required': required}