aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2016-12-29 18:36:34 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2016-12-29 18:36:34 +0200
commitf85c348b948c9ecd9a5ec60d0c529b80e0c01a81 (patch)
tree41c64fef573d0d84a06b39295e47e0a08e42d656 /mesonbuild/interpreter.py
parent8f5b67434d487d997e41138f20469f0c2a328d9a (diff)
downloadmeson-f85c348b948c9ecd9a5ec60d0c529b80e0c01a81.zip
meson-f85c348b948c9ecd9a5ec60d0c529b80e0c01a81.tar.gz
meson-f85c348b948c9ecd9a5ec60d0c529b80e0c01a81.tar.bz2
Move option file parsing to after the project() inputs have been decoded to access default options.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 4f679fd..4f3f81a 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -1147,12 +1147,7 @@ class Interpreter(InterpreterBase):
self.backend = backend
self.subproject = subproject
self.subproject_dir = subproject_dir
- option_file = os.path.join(self.source_root, self.subdir, 'meson_options.txt')
- if os.path.exists(option_file):
- oi = optinterpreter.OptionInterpreter(self.subproject, \
- self.build.environment.cmd_line_options.projectoptions)
- oi.process(option_file)
- self.build.environment.merge_options(oi.options)
+ self.option_file = os.path.join(self.source_root, self.subdir, 'meson_options.txt')
self.load_root_meson_file()
self.sanity_check_ast()
self.builtin.update({'meson': MesonMain(build, self)})
@@ -1501,6 +1496,12 @@ class Interpreter(InterpreterBase):
self.build.project_name = args[0]
if self.environment.first_invocation and 'default_options' in kwargs:
self.parse_default_options(kwargs['default_options'])
+ if os.path.exists(self.option_file):
+ oi = optinterpreter.OptionInterpreter(self.subproject, \
+ self.build.environment.cmd_line_options.projectoptions,
+ )
+ oi.process(self.option_file)
+ self.build.environment.merge_options(oi.options)
if len(args) < 2:
raise InvalidArguments('Not enough arguments to project(). Needs at least the project name and one language')
self.active_projectname = args[0]