diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-11-18 12:28:36 +0100 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2025-12-22 12:01:05 +0100 |
| commit | 8d2676a49bdce134e3ee9d97f00e627b442dfa40 (patch) | |
| tree | 432fbce714395f6a36278095b4318fa54704d25d /mesonbuild/modules/rust.py | |
| parent | c2cbb7001129ee92d966f5060fbf0459eaa29550 (diff) | |
| download | meson-8d2676a49bdce134e3ee9d97f00e627b442dfa40.tar.gz | |
modules: rust: add package.override_dependency method
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/modules/rust.py')
| -rw-r--r-- | mesonbuild/modules/rust.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/mesonbuild/modules/rust.py b/mesonbuild/modules/rust.py index 606065176..783df1865 100644 --- a/mesonbuild/modules/rust.py +++ b/mesonbuild/modules/rust.py @@ -250,6 +250,7 @@ class RustPackage(RustCrate): 'proc_macro': self.proc_macro_method, 'shared_module': self.shared_module_method, 'executable': self.executable_method, + 'override_dependency': self.override_dependency_method, }) @noPosargs @@ -362,6 +363,19 @@ class RustPackage(RustCrate): result = self._library_method(state, args, kwargs, shared=True, static=False) return T.cast('SharedLibrary', result) + @typed_pos_args('package.override_dependency', Dependency) + @typed_kwargs('package.override_dependency', + KwargInfo('rust_abi', (str, NoneType), default=None, validator=in_set_validator({'rust', 'c', 'proc-macro'}))) + def override_dependency_method(self, state: ModuleState, args: T.Tuple[Dependency], kwargs: FuncDependency) -> None: + dep = args[0] + rust_abi = self.package.abi_resolve_default(kwargs['rust_abi']) + depname = self.package.get_dependency_name(rust_abi) + state.override_dependency(depname, dep) + if self.package.abi_has_static(rust_abi): + state.override_dependency(depname, dep, static=True) + if self.package.abi_has_shared(rust_abi): + state.override_dependency(depname, dep, static=False) + @typed_pos_args('package.library', optargs=[(str, StructuredSources), StructuredSources]) @typed_kwargs( 'package.library', |
