summaryrefslogtreecommitdiff
path: root/mesonbuild/modules
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r--mesonbuild/modules/rust.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/mesonbuild/modules/rust.py b/mesonbuild/modules/rust.py
index 186774413..0ea1c8f7e 100644
--- a/mesonbuild/modules/rust.py
+++ b/mesonbuild/modules/rust.py
@@ -158,6 +158,9 @@ class RustCrate(ModuleObject):
'features': self.features_method,
'name': self.name_method,
'version': self.version_method,
+ 'rust_args': self.rust_args_method,
+ 'env': self.env_method, # type: ignore[dict-item]
+ 'rust_dependency_map': self.rust_dependency_map_method, # type: ignore[dict-item]
})
@noPosargs
@@ -190,6 +193,24 @@ class RustCrate(ModuleObject):
"""Returns chosen features for specific package."""
return sorted(list(self.package.cfg.features))
+ @noPosargs
+ @noKwargs
+ def rust_args_method(self, state: ModuleState, args: T.List, kwargs: TYPE_kwargs) -> T.List[str]:
+ """Returns rustc arguments for this package."""
+ return self.package.get_rustc_args(state.environment, state.subdir, mesonlib.MachineChoice.HOST)
+
+ @noPosargs
+ @noKwargs
+ def env_method(self, state: ModuleState, args: T.List, kwargs: TYPE_kwargs) -> T.Dict[str, str]:
+ """Returns environment variables for this package."""
+ return self.package.get_env_dict(state.environment, state.subdir)
+
+ @noPosargs
+ @noKwargs
+ def rust_dependency_map_method(self, state: ModuleState, args: T.List, kwargs: TYPE_kwargs) -> T.Dict[str, str]:
+ """Returns rust dependency mapping for this package."""
+ return self.package.cfg.get_dependency_map(self.package.manifest)
+
class RustPackage(RustCrate):
"""Represents a Rust package within a workspace."""