aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/interpreter.py b/interpreter.py
index 61f5938..b32e47a 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -19,6 +19,7 @@ import coredata
import dependencies
import mlog
import build
+import optinterpreter
import os, sys, platform, subprocess, shutil
class InterpreterException(coredata.MesonException):
@@ -558,6 +559,11 @@ class Interpreter():
self.build = build
self.subproject = subproject
self.source_root = os.path.join(build.environment.get_source_dir(), subproject)
+ option_file = os.path.join(self.source_root, 'meson_options.txt')
+ if os.path.exists(option_file):
+ oi = optinterpreter.OptionInterpreter(self.subproject)
+ oi.process(option_file)
+ self.build.environment.merge_options(oi.options)
code = open(os.path.join(self.source_root, environment.build_filename)).read()
if len(code.strip()) == 0:
raise InvalidCode('Builder file is empty.')
@@ -754,6 +760,8 @@ class Interpreter():
optname = args[0]
if not isinstance(optname, str):
raise InterpreterException('Argument of get_option must be a string.')
+ if self.subproject != '':
+ optname = self.subproject + '-' + optname
if optname not in self.environment.coredata.user_options:
raise InterpreterException('Tried to access unknown option "%s".' % optname)
return self.environment.coredata.user_options[optname].value