diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-09-30 15:30:57 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-30 15:30:57 -0400 |
commit | 295b67df518805a1120671e3b248ff0672a89b93 (patch) | |
tree | d0b3a80cb6af908c77e4fadf685046a0313efb51 /mesonbuild/backend/ninjabackend.py | |
parent | 338dbc964cf2927d476d1fb89a5751e8cfce39bd (diff) | |
parent | 89753ecc27c9857be2554b1af7fe1f5162b8e761 (diff) | |
download | meson-295b67df518805a1120671e3b248ff0672a89b93.zip meson-295b67df518805a1120671e3b248ff0672a89b93.tar.gz meson-295b67df518805a1120671e3b248ff0672a89b93.tar.bz2 |
Merge pull request #814 from centricular/heavy-cleanup-compilers-buildtargets
Heavy cleanup in compilers and BuildTarget
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 41f96f1..a84de0e 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -233,19 +233,18 @@ int dummy; if isinstance(target, build.Jar): self.generate_jar_target(target, outfile) return - if 'rust' in self.environment.coredata.compilers.keys() and self.has_rust(target): + if 'rust' in target.compilers: self.generate_rust_target(target, outfile) return - if 'cs' in self.environment.coredata.compilers.keys() and self.has_cs(target): + if 'cs' in target.compilers: self.generate_cs_target(target, outfile) return - if 'vala' in self.environment.coredata.compilers.keys() and self.has_vala(target): - vc = self.environment.coredata.compilers['vala'] - vala_output_files = self.generate_vala_compile(vc, target, outfile) - gen_src_deps += vala_output_files - if 'swift' in self.environment.coredata.compilers.keys() and self.has_swift(target): + if 'swift' in target.compilers: self.generate_swift_target(target, outfile) return + if 'vala' in target.compilers: + vala_output_files = self.generate_vala_compile(target, outfile) + gen_src_deps += vala_output_files self.scan_fortran_module_outputs(target) # The following deals with C/C++ compilation. (gen_src, gen_other_deps) = self.process_dep_gens(outfile, target) @@ -718,8 +717,7 @@ int dummy; outname_rel = os.path.join(self.get_target_dir(target), fname) src_list = target.get_sources() class_list = [] - compiler = self.get_compiler_for_source(src_list[0], False) - assert(compiler.get_language() == 'java') + compiler = target.compilers['java'] c = 'c' m = '' e = '' @@ -769,8 +767,7 @@ int dummy; fname = target.get_filename() outname_rel = os.path.join(self.get_target_dir(target), fname) src_list = target.get_sources() - compiler = self.get_compiler_for_source(src_list[0], False) - assert(compiler.get_language() == 'cs') + compiler = target.compilers['cs'] rel_srcs = [s.rel_to_builddir(self.build_to_src) for s in src_list] deps = [] commands = target.extra_args.get('cs', []) @@ -845,9 +842,9 @@ int dummy; break return result - def generate_vala_compile(self, compiler, target, outfile): + def generate_vala_compile(self, target, outfile): """Vala is compiled into C. Set up all necessary build steps here.""" - valac = self.environment.coredata.compilers['vala'] + valac = target.compilers['vala'] (src, vapi_src) = self.split_vala_sources(target.get_sources()) vapi_src = [x.rel_to_builddir(self.build_to_src) for x in vapi_src] extra_dep_files = [] @@ -866,8 +863,8 @@ int dummy; generated_c_files = [] outputs = [vapiname] args = [] - args += self.build.get_global_args(compiler) - args += compiler.get_buildtype_args(self.environment.coredata.get_builtin_option('buildtype')) + args += self.build.get_global_args(valac) + args += valac.get_buildtype_args(self.environment.coredata.get_builtin_option('buildtype')) args += ['-d', self.get_target_private_dir(target)] args += ['-C']#, '-o', cname] if not isinstance(target, build.Executable): @@ -910,7 +907,7 @@ int dummy; return generated_c_files def generate_rust_target(self, target, outfile): - rustc = self.environment.coredata.compilers['rust'] + rustc = target.compilers['rust'] relsrc = [] for i in target.get_sources(): if not rustc.can_compile(i): @@ -1001,7 +998,7 @@ int dummy; def generate_swift_target(self, target, outfile): module_name = self.target_swift_modulename(target) - swiftc = self.environment.coredata.compilers['swift'] + swiftc = target.compilers['swift'] abssrc = [] abs_headers = [] header_imports = [] |