aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-06-14 09:01:04 -0400
committerEli Schwartz <eschwartz93@gmail.com>2022-06-14 16:01:20 -0400
commitd85a9733e6af45c9e3111f23ecec9e614eaeaeeb (patch)
treee87cb782752a2ab8af84986f2ef47787d628ff48 /mesonbuild/interpreter
parente559ea0b7c96f2436d82ed9f94fe78d7c2aaef1d (diff)
downloadmeson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.zip
meson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.tar.gz
meson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.tar.bz2
Fix crash when a reconfigure adds a new subproject
When a subproject is disabled on the initial configuration we should not add it into self.coredata.initialized_subprojects because that will prevent calling self.coredata.init_builtins() on a reconfigure if the subproject gets enabled. Fixes: #10225.
Diffstat (limited to 'mesonbuild/interpreter')
-rw-r--r--mesonbuild/interpreter/interpreter.py3
1 files changed, 1 insertions, 2 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index ee7260a..3bf9b42 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -855,7 +855,6 @@ class Interpreter(InterpreterBase, HoldableObject):
sub = SubprojectHolder(NullSubprojectInterpreter(), os.path.join(self.subproject_dir, subp_name),
disabled_feature=disabled_feature, exception=exception)
self.subprojects[subp_name] = sub
- self.coredata.initialized_subprojects.add(subp_name)
return sub
def do_subproject(self, subp_name: str, method: Literal['meson', 'cmake'], kwargs: kwargs.DoSubproject) -> SubprojectHolder:
@@ -979,7 +978,6 @@ class Interpreter(InterpreterBase, HoldableObject):
self.build_def_files.update(subi.build_def_files)
self.build.merge(subi.build)
self.build.subprojects[subp_name] = subi.project_version
- self.coredata.initialized_subprojects.add(subp_name)
return self.subprojects[subp_name]
def _do_subproject_cmake(self, subp_name: str, subdir: str, subdir_abs: str,
@@ -1160,6 +1158,7 @@ class Interpreter(InterpreterBase, HoldableObject):
default_options = self.project_default_options.copy()
default_options.update(self.default_project_options)
self.coredata.init_builtins(self.subproject)
+ self.coredata.initialized_subprojects.add(self.subproject)
else:
default_options = {}
self.coredata.set_default_options(default_options, self.subproject, self.environment)