aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-02-25 14:56:35 -0800
committerDylan Baker <dylan@pnwbakers.com>2021-02-26 09:05:30 -0800
commite0795539598c8dd21756158d0687b461712f0a21 (patch)
tree1f93a5ffa2688f2696c20d96a71b971e1b7ce68d /mesonbuild/interpreter.py
parentec5fe58e6dd0f42f126b48d1ebd191deeea38541 (diff)
downloadmeson-e0795539598c8dd21756158d0687b461712f0a21.zip
meson-e0795539598c8dd21756158d0687b461712f0a21.tar.gz
meson-e0795539598c8dd21756158d0687b461712f0a21.tar.bz2
interpreter: correctly track whether a subproject is initialized
The way the tracking is currently done it works if no new subprojects are added to a configured build directory. For cases where we want to add a new subproject, it fails because we don't initialize builtins for that subproject. This corrects that by checking to see if the subproject already exists, and if it doesn't initializes the bultins for it. Fixes: #8421
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 98c5713..ea65bc6 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -3185,7 +3185,11 @@ external dependencies (including libraries) must go to "dependencies".''')
# have any effect.
self.project_default_options = mesonlib.stringlistify(kwargs.get('default_options', []))
self.project_default_options = coredata.create_options_dict(self.project_default_options, self.subproject)
- if self.environment.first_invocation:
+
+ # If this is the first invocation we alway sneed to initialize
+ # builtins, if this is a subproject that is new in a re-invocation we
+ # need to initialize builtins for that
+ if self.environment.first_invocation or (self.subproject != '' and self.subproject not in self.subprojects):
default_options = self.project_default_options.copy()
default_options.update(self.default_project_options)
self.coredata.init_builtins(self.subproject)