diff options
-rw-r--r-- | mesonbuild/build.py | 2 | ||||
-rw-r--r-- | test cases/failing/28 noprog use/meson.build | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index ab9d0d5..3f480e8 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -842,6 +842,8 @@ class CustomTarget: if isinstance(c, str): final_cmd.append(c) elif isinstance(c, dependencies.ExternalProgram): + if not c.found(): + raise InvalidArguments('Tried to use not found external program in a build rule.') final_cmd += c.get_command() elif isinstance(c, BuildTarget) or isinstance(c, CustomTarget): self.dependencies.append(c) diff --git a/test cases/failing/28 noprog use/meson.build b/test cases/failing/28 noprog use/meson.build new file mode 100644 index 0000000..e4de42f --- /dev/null +++ b/test cases/failing/28 noprog use/meson.build @@ -0,0 +1,9 @@ +project('using not found exe', 'c') + +nope = find_program('nonexisting', required : false) + +custom_target( 'aa', + input: 'meson.build', + output: 'foobar', + command: [nope, '@INPUT@', '@OUTPUT@'] +) |