From d85a9733e6af45c9e3111f23ecec9e614eaeaeeb Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Tue, 14 Jun 2022 09:01:04 -0400 Subject: 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. --- mesonbuild/interpreter/interpreter.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'mesonbuild/interpreter') 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) -- cgit v1.1