diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2018-02-04 00:44:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-04 00:44:09 +0200 |
commit | bfa6c8d0747b4fb355f8e953448385c51574a965 (patch) | |
tree | 7941592be47ca899144e5d6868164d1f399add70 /mesonbuild/backend/ninjabackend.py | |
parent | 8fe816101467e66792251b4f57e0ddddb537764a (diff) | |
parent | 281294286e1126ef0945ddedd4f577b01f28bc8b (diff) | |
download | meson-bfa6c8d0747b4fb355f8e953448385c51574a965.zip meson-bfa6c8d0747b4fb355f8e953448385c51574a965.tar.gz meson-bfa6c8d0747b4fb355f8e953448385c51574a965.tar.bz2 |
Merge pull request #2938 from acfoltzer/rust-cross-merge
Add cross-compilation support for `rustc`
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index d9c56df..35e697c 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -1292,7 +1292,11 @@ int dummy; # installations for rpath_arg in rpath_args: args += ['-C', 'link-arg=' + rpath_arg + ':' + os.path.join(rustc.get_sysroot(), 'lib')] - element = NinjaBuildElement(self.all_outputs, target_name, 'rust_COMPILER', relsrc) + crstr = '' + if target.is_cross: + crstr = '_CROSS' + compiler_name = 'rust%s_COMPILER' % crstr + element = NinjaBuildElement(self.all_outputs, target_name, compiler_name, relsrc) if len(orderdeps) > 0: element.add_orderdep(orderdeps) element.add_item('ARGS', args) @@ -1580,8 +1584,11 @@ int dummy; outfile.write(restat) outfile.write('\n') - def generate_rust_compile_rules(self, compiler, outfile): - rule = 'rule %s_COMPILER\n' % compiler.get_language() + def generate_rust_compile_rules(self, compiler, outfile, is_cross): + crstr = '' + if is_cross: + crstr = '_CROSS' + rule = 'rule %s%s_COMPILER\n' % (compiler.get_language(), crstr) invoc = ' '.join([ninja_quote(i) for i in compiler.get_exelist()]) command = ' command = %s $ARGS $in\n' % invoc description = ' description = Compiling Rust source $in.\n' @@ -1672,8 +1679,7 @@ rule FORTRAN_DEP_HACK self.generate_vala_compile_rules(compiler, outfile) return if langname == 'rust': - if not is_cross: - self.generate_rust_compile_rules(compiler, outfile) + self.generate_rust_compile_rules(compiler, outfile, is_cross) return if langname == 'swift': if not is_cross: |