aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-08-30 23:43:27 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2013-08-30 23:43:27 +0300
commit845eda2938f67cae3b7bccf813b994441a2c8a5d (patch)
tree75a0da812bd5257ac5d40279fe81977bbf0b9352 /interpreter.py
parentc3640ef03648bf79a39029e851970073063b46ac (diff)
downloadmeson-845eda2938f67cae3b7bccf813b994441a2c8a5d.zip
meson-845eda2938f67cae3b7bccf813b994441a2c8a5d.tar.gz
meson-845eda2938f67cae3b7bccf813b994441a2c8a5d.tar.bz2
Better build type introspection.
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/interpreter.py b/interpreter.py
index e0adca3..9cf45a1 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -798,17 +798,33 @@ class MesonMain(InterpreterObject):
def __init__(self, build):
InterpreterObject.__init__(self)
self.build = build
- self.methods.update({'get_compiler': self.get_compiler_method})
+ self.methods.update({'get_compiler': self.get_compiler_method,
+ 'is_cross_build' : self.is_cross_build_method,
+ })
+
+ def is_cross_build_method(self, args, kwargs):
+ return self.build.environment.is_cross_build()
def get_compiler_method(self, args, kwargs):
if len(args) != 1:
raise InterpreterException('get_compiler_method must have one and only one argument.')
cname = args[0]
- for c in self.build.compilers:
+ native = kwargs.get('native', None)
+ if native is None:
+ if self.build.environment.is_cross_build():
+ native = False
+ else:
+ native = True
+ if not isinstance(native, bool):
+ raise InterpreterException('Type of "native" must be a boolean.')
+ if native:
+ clist = self.build.compilers
+ else:
+ clist = self.build.cross_compilers
+ for c in clist:
if c.get_language() == cname:
return CompilerHolder(c, self.build.environment)
raise InterpreterException('Tried to access compiler for unspecified language "%s".' % cname)
-
class Interpreter():