diff options
Diffstat (limited to 'mesonbuild/modules')
| -rw-r--r-- | mesonbuild/modules/rust.py | 21 |
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.""" |
