aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/build.py2
-rw-r--r--test cases/failing/28 noprog use/meson.build9
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@']
+)