diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-02-25 14:56:35 -0800 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2021-02-26 09:05:30 -0800 |
commit | e0795539598c8dd21756158d0687b461712f0a21 (patch) | |
tree | 1f93a5ffa2688f2696c20d96a71b971e1b7ce68d /mesonbuild/interpreter.py | |
parent | ec5fe58e6dd0f42f126b48d1ebd191deeea38541 (diff) | |
download | meson-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.py | 6 |
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) |