aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/ninjabackend.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-07-31 19:33:06 +0300
committerGitHub <noreply@github.com>2018-07-31 19:33:06 +0300
commite75f6e43050594c77a09eb7b27ee3ec0b0d0898f (patch)
treee89968d5d63109721a11cb385b77d2f7d69a232c /mesonbuild/backend/ninjabackend.py
parenta5d0a501fd27a7a68675f5ca6b371ee3c0234016 (diff)
parente8dae2b966498207867cb07d58f4404b76c087ce (diff)
downloadmeson-e75f6e43050594c77a09eb7b27ee3ec0b0d0898f.zip
meson-e75f6e43050594c77a09eb7b27ee3ec0b0d0898f.tar.gz
meson-e75f6e43050594c77a09eb7b27ee3ec0b0d0898f.tar.bz2
Merge pull request #3850 from mesonbuild/nirbheek/exe-wrapper-compiler-fallbacks
Be more permissive about not-found exe_wrapper
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r--mesonbuild/backend/ninjabackend.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 855564c..ca65893 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -545,7 +545,7 @@ int dummy;
if extra_paths:
serialize = True
if serialize:
- exe_data = self.serialize_executable(target.command[0], cmd[1:],
+ exe_data = self.serialize_executable(target.name, target.command[0], cmd[1:],
# All targets are built from the build dir
self.environment.get_build_dir(),
extra_paths=extra_paths,
@@ -599,11 +599,15 @@ 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.need_exe_wrapper():
- exe_wrap = self.environment.cross_info.config['binaries'].get('exe_wrapper', None)
- if exe_wrap is not None:
- cmd += [exe_wrap]
+ if self.environment.is_cross_build():
+ exe_wrap = self.environment.get_exe_wrapper()
+ if exe_wrap:
+ if not exe_wrap.found():
+ msg = 'The exe_wrapper {!r} defined in the cross file is ' \
+ 'needed by run target {!r}, but was not found. ' \
+ 'Please check the command and/or add it to PATH.'
+ raise MesonException(msg.format(exe_wrap.name, target.name))
+ cmd += exe_wrap.get_command()
cmd.append(abs_exe)
elif isinstance(texe, dependencies.ExternalProgram):
cmd += texe.get_command()
@@ -1718,6 +1722,7 @@ rule FORTRAN_DEP_HACK%s
cmdlist = exe_arr + self.replace_extra_args(args, genlist)
if generator.capture:
exe_data = self.serialize_executable(
+ 'generator ' + cmdlist[0],
cmdlist[0],
cmdlist[1:],
self.environment.get_build_dir(),