aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-10-15 22:20:45 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2015-10-15 22:20:45 +0300
commit172fa2f8ddac5a53ea6fa6632e0cfaeb53344b64 (patch)
tree9c0653bf0e7718f754051555d9e56cd4119280b1 /interpreter.py
parentc5788548d225b1cf5561244e24da8a8cd6d7f488 (diff)
parent0d56955e9cda7993ef07894fb58bb90ba5b463e6 (diff)
downloadmeson-172fa2f8ddac5a53ea6fa6632e0cfaeb53344b64.zip
meson-172fa2f8ddac5a53ea6fa6632e0cfaeb53344b64.tar.gz
meson-172fa2f8ddac5a53ea6fa6632e0cfaeb53344b64.tar.bz2
Merge pull request #275 from mesonbuild/compileroptions
Compiler options
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/interpreter.py b/interpreter.py
index 914caa1..7e67711 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -1239,15 +1239,20 @@ class Interpreter():
if len(args) != 1:
raise InterpreterException('Argument required for get_option.')
optname = args[0]
- if optname not in coredata.builtin_options and self.is_subproject():
- optname = self.subproject + ':' + optname
try:
return self.environment.get_coredata().get_builtin_option(optname)
except RuntimeError:
pass
- if optname not in self.environment.coredata.user_options:
+ try:
+ return self.environment.coredata.compiler_options[optname].value
+ except KeyError:
+ pass
+ if optname not in coredata.builtin_options and self.is_subproject():
+ optname = self.subproject + ':' + optname
+ try:
+ return self.environment.coredata.user_options[optname].value
+ except KeyError:
raise InterpreterException('Tried to access unknown option "%s".' % optname)
- return self.environment.coredata.user_options[optname].value
@noKwargs
def func_configuration_data(self, node, args, kwargs):
@@ -1365,6 +1370,13 @@ class Interpreter():
if cross_comp is not None:
cross_comp.sanity_check(self.environment.get_scratch_dir())
self.coredata.cross_compilers[lang] = cross_comp
+ new_options = comp.get_options()
+ optprefix = lang + '_'
+ for i in new_options:
+ if not i.startswith(optprefix):
+ raise InterpreterException('Internal error, %s has incorrect prefix.' % i)
+ new_options.update(self.coredata.compiler_options)
+ self.coredata.compiler_options = new_options
mlog.log('Native %s compiler: ' % lang, mlog.bold(' '.join(comp.get_exelist())), ' (%s %s)' % (comp.id, comp.version), sep='')
if not comp.get_language() in self.coredata.external_args:
(ext_compile_args, ext_link_args) = environment.get_args_from_envvars(comp.get_language())