]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: declare version.h as dep for fuzzers
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 20 Dec 2018 21:33:24 +0000 (22:33 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 21 Dec 2018 12:43:20 +0000 (13:43 +0100)
This is supposed an error when building fuzzers for sanitization (that is a
nested build with the sanitization options):

In file included from ../../../../src/basic/util.c:21:0:
../../../../src/basic/build.h:4:21: fatal error: version.h: No such file or directory
 #include "version.h"
                     ^
compilation terminated.

Internally we do 'ninja -C test/fuzz/sanitize-address-fuzzers fuzzers'.
I'm not quite sure why version.h is not built in this case. But declaring
version_h as the dependency forces it to be built and solves the issue.

It would be better to define the dependency on individual exe's, but this
doesn't work:

meson.build:2884:8: ERROR:  Argument is of an unacceptable type 'CustomTarget'.
Must be either an external dependency (returned by find_library() or
dependency()) or an internal dependency (returned by declare_dependency()).

Let's treat this a hack for another hack, which the nested build is.

meson.build

index f528b4125f0fa0f106463100a66b51e09c11b25f..daafd822a3b09fe51419bb5662abb9c29cbfb031 100644 (file)
@@ -2891,8 +2891,9 @@ foreach tuple : fuzzers
 endforeach
 endif
 
-run_target('fuzzers',
-        depends : fuzzer_exes,
+run_target(
+        'fuzzers',
+        depends : [fuzzer_exes, version_h],
         command : ['true'])
 
 ############################################################