summaryrefslogtreecommitdiff
path: root/mesonbuild/cargo/interpreter.py
diff options
context:
space:
mode:
authorXavier Claessens <xclaessens@netflix.com>2025-10-15 15:18:05 -0400
committerXavier Claessens <xclaesse@gmail.com>2025-10-17 16:15:14 -0400
commit87a367c406e67d38df0946e2d780fbdf715e437a (patch)
treec41e4482af845718cb7f8656b839d40211fee360 /mesonbuild/cargo/interpreter.py
parent15fa4f7a44ba6321ead0ab3e2a0a273a4b159036 (diff)
downloadmeson-87a367c406e67d38df0946e2d780fbdf715e437a.tar.gz
cargo: Keep a list of build_def_files
Diffstat (limited to 'mesonbuild/cargo/interpreter.py')
-rw-r--r--mesonbuild/cargo/interpreter.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py
index 755bbc4c3..c763483dd 100644
--- a/mesonbuild/cargo/interpreter.py
+++ b/mesonbuild/cargo/interpreter.py
@@ -88,20 +88,18 @@ class Interpreter:
self.packages: T.Dict[PackageKey, PackageState] = {}
# Map subdir to workspace
self.workspaces: T.Dict[str, WorkspaceState] = {}
+ # Files that should trigger a reconfigure if modified
+ self.build_def_files: T.List[str] = []
# Cargo packages
filename = os.path.join(self.environment.get_source_dir(), subdir, 'Cargo.lock')
subprojects_dir = os.path.join(self.environment.get_source_dir(), subprojects_dir)
- self.subdir: T.Optional[str] = None
self.cargolock = load_cargo_lock(filename, subprojects_dir)
if self.cargolock:
- self.subdir = subdir
self.environment.wrap_resolver.merge_wraps(self.cargolock.wraps)
+ self.build_def_files.append(filename)
def get_build_def_files(self) -> T.List[str]:
- build_def_files = [os.path.join(subdir, 'Cargo.toml') for subdir in self.manifests]
- if self.cargolock:
- build_def_files.append(os.path.join(self.subdir, 'Cargo.lock'))
- return build_def_files
+ return self.build_def_files
def interpret(self, subdir: str, project_root: T.Optional[str] = None) -> mparser.CodeBlockNode:
manifest = self._load_manifest(subdir)
@@ -305,6 +303,7 @@ class Interpreter:
if not manifest_:
path = os.path.join(self.environment.source_dir, subdir)
filename = os.path.join(path, 'Cargo.toml')
+ self.build_def_files.append(filename)
toml = load_toml(filename)
workspace_ = None
if 'workspace' in toml: