From 50663144c37af5e0f411902eb3b799641daffa45 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Sun, 4 Oct 2015 03:41:38 +0300 Subject: Can set compiler options, added language versions for Gnu and Clang. --- interpreter.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'interpreter.py') diff --git a/interpreter.py b/interpreter.py index edfe59b86..472a10c9d 100644 --- a/interpreter.py +++ b/interpreter.py @@ -1330,6 +1330,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()) -- cgit v1.2.3 From 5cdad45b903c6300935fad55effa1cef75512281 Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Wed, 7 Oct 2015 16:54:02 +0300 Subject: Expose compiler options in get_option(). --- interpreter.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'interpreter.py') diff --git a/interpreter.py b/interpreter.py index 472a10c9d..6cfe103ee 100644 --- a/interpreter.py +++ b/interpreter.py @@ -1209,15 +1209,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): -- cgit v1.2.3