diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2016-05-01 18:56:07 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-05-01 18:56:07 +0300 |
commit | 46ce7a9d4ba3eb10f310657242524053a96e5ed9 (patch) | |
tree | 8797ab81fb97ea3e1f51b20a6846f1036877796e /mesonbuild/backend | |
parent | 2e2df70dd041a632f4fa7460066c2cc222877210 (diff) | |
parent | 2bdaa1f0c181511fab143eccf68c77fcc60c46e2 (diff) | |
download | meson-46ce7a9d4ba3eb10f310657242524053a96e5ed9.zip meson-46ce7a9d4ba3eb10f310657242524053a96e5ed9.tar.gz meson-46ce7a9d4ba3eb10f310657242524053a96e5ed9.tar.bz2 |
Merge pull request #516 from centricular/cross-compile_32bit-x86_on_64bit-x86_exe-wrapper
Special-case the 32-bit executable on 64-bit x86 case while cross-compiling
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r-- | mesonbuild/backend/backends.py | 9 | ||||
-rw-r--r-- | mesonbuild/backend/ninjabackend.py | 8 |
2 files changed, 11 insertions, 6 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 19f50ad..7c6caa6 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -357,7 +357,9 @@ class Backend(): fname = exe.fullpath else: fname = [os.path.join(self.environment.get_build_dir(), self.get_target_filename(t.get_exe()))] - is_cross = self.environment.is_cross_build() and self.environment.cross_info.need_cross_compiler() + is_cross = self.environment.is_cross_build() and \ + self.environment.cross_info.need_cross_compiler() and \ + self.environment.cross_info.need_exe_wrapper() if is_cross: exe_wrapper = self.environment.cross_info.config['binaries'].get('exe_wrapper', None) else: @@ -408,8 +410,9 @@ class Backend(): def exe_object_to_cmd_array(self, exe): if self.environment.is_cross_build() and \ - isinstance(exe, build.BuildTarget) and exe.is_cross: - if 'exe_wrapper' not in self.environment.cross_info: + self.environment.cross_info.need_exe_wrapper() and \ + isinstance(exe, build.BuildTarget) and exe.is_cross: + if 'exe_wrapper' not in self.environment.cross_info.config: s = 'Can not use target %s as a generator because it is cross-built\n' s += 'and no exe wrapper is defined. You might want to set it to native instead.' s = s % exe.name diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py index 5a21a6c..ce8968c 100644 --- a/mesonbuild/backend/ninjabackend.py +++ b/mesonbuild/backend/ninjabackend.py @@ -409,9 +409,11 @@ int dummy; if isinstance(texe, build.Executable): abs_exe = os.path.join(self.environment.get_build_dir(), self.get_target_filename(texe)) deps.append(self.get_target_filename(texe)) - if self.environment.is_cross_build() \ - and self.environment.cross_info.config['binaries'].get('exe_wrapper', None) is not None: - cmd += [self.environment.cross_info.config['binaries']['exe_wrapper']] + if self.environment.is_cross_build() and \ + self.environment.cross_info.need_exe_wrapper(): + exe_wrap = self.environment.cross_info.config['binaries'].get('exe_wrapper', None) + if exe_wrap is not None: + cmd += [exe_wrap] cmd.append(abs_exe) else: cmd.append(target.command) |