From: Zbigniew Jędrzejewski-Szmek Date: Wed, 2 Dec 2020 12:49:24 +0000 (+0100) Subject: meson: allow fuzzers to be built even if fuzz testing is disabled X-Git-Tag: v248-rc1~601^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F17810%2Fhead;p=thirdparty%2Fsystemd.git meson: allow fuzzers to be built even if fuzz testing is disabled This makes commands like 'ninja -C build fuzz-journal-remote' or 'ninja -C build fuzzers' work, even if we have -Dfuzz-tests=false. Two advantages: correctness of the meson declarations is verified even if fuzzers are not built, and it easier to do a one-off build to check for regressions or such. Follow-up for 1763ef1d49cc1263b40f157060a61cdd6e91d3a4. --- diff --git a/meson.build b/meson.build index 73cff4a6f7d..bf291027ea2 100644 --- a/meson.build +++ b/meson.build @@ -3438,40 +3438,39 @@ endif fuzzer_exes = [] -if fuzz_tests or fuzzer_build - foreach tuple : fuzzers - sources = tuple[0] - link_with = tuple[1].length() > 0 ? tuple[1] : [libshared] - dependencies = tuple[2] - defs = tuple.length() >= 4 ? tuple[3] : [] - incs = tuple.length() >= 5 ? tuple[4] : includes - link_args = [] - - if want_ossfuzz +foreach tuple : fuzzers + sources = tuple[0] + link_with = tuple[1].length() > 0 ? tuple[1] : [libshared] + dependencies = tuple[2] + defs = tuple.length() >= 4 ? tuple[3] : [] + incs = tuple.length() >= 5 ? tuple[4] : includes + link_args = [] + + if want_ossfuzz + dependencies += fuzzing_engine + elif want_libfuzzer + if fuzzing_engine.found() dependencies += fuzzing_engine - elif want_libfuzzer - if fuzzing_engine.found() - dependencies += fuzzing_engine - else - link_args += ['-fsanitize=fuzzer'] - endif else - sources += 'src/fuzz/fuzz-main.c' + link_args += ['-fsanitize=fuzzer'] endif + else + sources += 'src/fuzz/fuzz-main.c' + endif - name = sources[0].split('/')[-1].split('.')[0] + name = sources[0].split('/')[-1].split('.')[0] - fuzzer_exes += executable( - name, - sources, - include_directories : [incs, include_directories('src/fuzz')], - link_with : link_with, - dependencies : dependencies, - c_args : defs, - link_args: link_args, - install : false) - endforeach -endif + fuzzer_exes += executable( + name, + sources, + include_directories : [incs, include_directories('src/fuzz')], + link_with : link_with, + dependencies : dependencies, + c_args : defs, + link_args: link_args, + install : false, + build_by_default : fuzz_tests or fuzzer_build) +endforeach run_target( 'fuzzers',