diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-05-10 01:14:52 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-05-10 01:14:52 +0300 |
commit | 9c2364b51564f11815c2c04c08fdd53ae01ef1fa (patch) | |
tree | 3be449d608cbd37dfb07783683dc5673a4fbc607 /interpreter.py | |
parent | eeaa5d06840345e869d9f87ffa6988a88e49c8f5 (diff) | |
download | meson-9c2364b51564f11815c2c04c08fdd53ae01ef1fa.zip meson-9c2364b51564f11815c2c04c08fdd53ae01ef1fa.tar.gz meson-9c2364b51564f11815c2c04c08fdd53ae01ef1fa.tar.bz2 |
Started work on Vala compilation.
Diffstat (limited to 'interpreter.py')
-rw-r--r-- | interpreter.py | 22 |
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()) |