summaryrefslogtreecommitdiff
path: root/mesonbuild/cargo/interpreter.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-10-28 13:33:09 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2025-12-22 12:01:05 +0100
commitdcf3af6b4e755a5da76eeea91332ca3dce17810f (patch)
treec631924f7eafc241806c9d8eb713f1df29f2fd95 /mesonbuild/cargo/interpreter.py
parent013121d3dda42b2bf70cb53675e3f3fe432b1d97 (diff)
downloadmeson-dcf3af6b4e755a5da76eeea91332ca3dce17810f.tar.gz
modules: rust: invoke subprojects automatically from dependencies()
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/cargo/interpreter.py')
-rw-r--r--mesonbuild/cargo/interpreter.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py
index d7d4a7733..fc3465a0f 100644
--- a/mesonbuild/cargo/interpreter.py
+++ b/mesonbuild/cargo/interpreter.py
@@ -24,7 +24,9 @@ from . import builder, version
from .cfg import eval_cfg
from .toml import load_toml
from .manifest import Manifest, CargoLock, CargoLockPackage, Workspace, fixup_meson_varname
-from ..mesonlib import is_parent_path, MesonException, MachineChoice, unique_list, version_compare
+from ..mesonlib import (
+ is_parent_path, lazy_property, MesonException, MachineChoice,
+ unique_list, version_compare)
from .. import coredata, mlog
from ..wrap.wrap import PackageDefinition
@@ -105,6 +107,12 @@ class PackageState:
# Package configuration state
cfg: T.Optional[PackageConfiguration] = None
+ @lazy_property
+ def path(self) -> T.Optional[str]:
+ if not self.ws_subdir:
+ return None
+ return os.path.normpath(os.path.join(self.ws_subdir, self.ws_member))
+
def get_env_dict(self, environment: Environment, subdir: str) -> T.Dict[str, str]:
"""Get environment variables for this package."""
# Common variables for build.rs and crates