aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/coredata.py9
-rw-r--r--mesonbuild/mconf.py3
2 files changed, 10 insertions, 2 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index f34f7b8..89cec46 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -634,6 +634,15 @@ class CoreData:
if key.name == 'buildtype':
self._set_others_from_buildtype(value)
+ elif key.name in {'wrap_mode', 'force_fallback_for'}:
+ # We could have the system dependency cached for a dependency that
+ # is now forced to use subproject fallback. We probably could have
+ # more fine grained cache invalidation, but better be safe.
+ self.clear_deps_cache()
+
+ def clear_deps_cache(self):
+ self.deps.host.clear()
+ self.deps.build.clear()
def get_nondefault_buildtype_args(self):
result= []
diff --git a/mesonbuild/mconf.py b/mesonbuild/mconf.py
index 20f31d1..4b3f331 100644
--- a/mesonbuild/mconf.py
+++ b/mesonbuild/mconf.py
@@ -85,8 +85,7 @@ class Conf:
raise ConfException(f'Directory {build_dir} is neither a Meson build directory nor a project source directory.')
def clear_cache(self):
- self.coredata.deps.host.clear()
- self.coredata.deps.build.clear()
+ self.coredata.clear_deps_cache()
def set_options(self, options):
self.coredata.set_options(options)