aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-05-10 01:14:52 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-05-10 01:14:52 +0300
commit9c2364b51564f11815c2c04c08fdd53ae01ef1fa (patch)
tree3be449d608cbd37dfb07783683dc5673a4fbc607 /interpreter.py
parenteeaa5d06840345e869d9f87ffa6988a88e49c8f5 (diff)
downloadmeson-9c2364b51564f11815c2c04c08fdd53ae01ef1fa.zip
meson-9c2364b51564f11815c2c04c08fdd53ae01ef1fa.tar.gz
meson-9c2364b51564f11815c2c04c08fdd53ae01ef1fa.tar.bz2
Started work on Vala compilation.
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py22
1 files changed, 17 insertions, 5 deletions
diff --git a/interpreter.py b/interpreter.py
index f6ae8bb..f9de829 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -890,6 +890,13 @@ class Interpreter():
self.build.projects[self.subproject] = args[0]
mlog.log('Project name is "', mlog.bold(args[0]), '".', sep='')
self.add_languages(node, args[1:])
+ langs = self.coredata.compilers.keys()
+ if 'vala' in langs:
+ if not 'c' in langs:
+ raise InterpreterException('Compiling Vala requires a C compiler')
+ # These are the implicit dependencies of Vala.
+ self.func_dependency(None, ['glib-2.0'], {})
+ self.func_dependency(None, ['gobject-2.0'], {})
def func_message(self, node, args, kwargs):
self.validate_arguments(args, 1, [str])
@@ -902,31 +909,36 @@ class Interpreter():
def add_languages(self, node, args):
is_cross = self.environment.is_cross_build()
for lang in args:
+ lang = lang.lower()
if lang in self.coredata.compilers:
comp = self.coredata.compilers[lang]
cross_comp = self.coredata.cross_compilers.get(lang, None)
else:
cross_comp = None
- if lang.lower() == 'c':
+ if lang == 'c':
comp = self.environment.detect_c_compiler(False)
if is_cross:
cross_comp = self.environment.detect_c_compiler(True)
- elif lang.lower() == 'cpp':
+ elif lang == 'cpp':
comp = self.environment.detect_cpp_compiler(False)
if is_cross:
cross_comp = self.environment.detect_cpp_compiler(True)
- elif lang.lower() == 'objc':
+ elif lang == 'objc':
comp = self.environment.detect_objc_compiler(False)
if is_cross:
cross_comp = self.environment.detect_objc_compiler(True)
- elif lang.lower() == 'objcpp':
+ elif lang == 'objcpp':
comp = self.environment.detect_objcpp_compiler(False)
if is_cross:
cross_comp = self.environment.detect_objcpp_compiler(True)
- elif lang.lower() == 'java':
+ elif lang == 'java':
comp = self.environment.detect_java_compiler()
if is_cross:
cross_comp = comp # Java is platform independent.
+ elif lang == 'vala':
+ comp = self.environment.detect_vala_compiler()
+ if is_cross:
+ cross_comp = comp # Vala is too (I think).
else:
raise InvalidCode('Tried to use unknown language "%s".' % lang)
comp.sanity_check(self.environment.get_scratch_dir())