From 62ac52e2897b24af8ff6f039c64d39bee2347cdc Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Thu, 6 Aug 2026 18:38:40 +0200 Subject: [PATCH] [#4272] Final attempt for meson.build --- src/fuzz/meson.build | 112 ++++++++++++++++++++++++++++++------------- 1 file changed, 78 insertions(+), 34 deletions(-) diff --git a/src/fuzz/meson.build b/src/fuzz/meson.build index ef23cfac80..d5cd7b4d07 100644 --- a/src/fuzz/meson.build +++ b/src/fuzz/meson.build @@ -1,4 +1,4 @@ -if not FUZZ_OPT.enabled() or not KRB5_DEP.found() +if not FUZZ_OPT.enabled() subdir_done() endif @@ -75,9 +75,12 @@ endforeach # As a result, they can only be compiled using clang++. cpp = meson.get_compiler('cpp') if cpp.get_id() == 'clang' + maybe_ddns_gss_tsig_lib = [] + if KRB5_DEP.found() + maybe_ddns_gss_tsig_lib += [ddns_gss_tsig_lib] + endif fuzz_libs = [ d2_lib, - ddns_gss_tsig_lib, dhcp_lease_query_lib, dhcp_flex_id_lib, dhcp_ddns_tuning_lib, @@ -85,43 +88,98 @@ if cpp.get_id() == 'clang' dhcp_radius_lib, dhcp_run_script_lib, dhcp_user_chk_lib, - dhcp4_lib, - dhcp6_lib, kea_testutils_lib, fuzz_lib, ] + fuzz_libs += maybe_ddns_gss_tsig_lib foreach i : [ 'fuzz_cc', 'fuzz_crypto', 'fuzz_cryptolink', 'fuzz_d2', - 'fuzz_dhcp_parser4', - 'fuzz_dhcp_parser6', - 'fuzz_dhcp_pkt4', - 'fuzz_dhcp_pkt6', - 'fuzz_dhcp_pkt_process4', - 'fuzz_dhcp_pkt_process6', 'fuzz_dhcpsrv', 'fuzz_dhcpsrv_csv_lease', 'fuzz_dns', 'fuzz_encode', + 'fuzz_http', + 'fuzz_ioaddress', + 'fuzz_util', + ] + FUZZING_HARNESSES += static_library( + i, + f'@i@.cc', + 'empty_llvm_functions.cc', + 'helper_func.cc', + fuzz_sources, + cpp_args: cpp_flags, + dependencies: [CRYPTO_DEP, GTEST_DEP, KRB5_DEP], + include_directories: includes, + link_with: fuzz_libs + LIBS_BUILT_SO_FAR, + build_rpath: BUILD_RPATH, + ) + endforeach + fuzz_libs = [ + dhcp_lease_query_lib, + dhcp_flex_id_lib, + dhcp_ddns_tuning_lib, + dhcp_lease_cmds_lib, + dhcp_radius_lib, + dhcp_run_script_lib, + dhcp_user_chk_lib, + dhcp4_lib, + kea_testutils_lib, + fuzz_lib, + ] + fuzz_libs += maybe_ddns_gss_tsig_lib + foreach i : [ + 'fuzz_dhcp_parser4', + 'fuzz_dhcp_pkt4', + 'fuzz_dhcp_pkt_process4', 'fuzz_eval4', - 'fuzz_eval6', 'fuzz_hook_ddns_tuning4', - 'fuzz_hook_ddns_tuning6', 'fuzz_hook_flex_id4', - 'fuzz_hook_flex_id6', 'fuzz_hook_lease_query4', - 'fuzz_hook_lease_query6', 'fuzz_hook_radius4', - 'fuzz_hook_radius6', 'fuzz_hook_run_script4', - 'fuzz_hook_run_script6', 'fuzz_hook_user_chk4', + ] + FUZZING_HARNESSES += static_library( + i, + f'@i@.cc', + 'empty_llvm_functions.cc', + 'helper_func.cc', + fuzz_sources, + cpp_args: cpp_flags, + dependencies: [CRYPTO_DEP, GTEST_DEP, KRB5_DEP], + include_directories: includes, + link_with: fuzz_libs + LIBS_BUILT_SO_FAR, + build_rpath: BUILD_RPATH, + ) + endforeach + fuzz_libs = [ + dhcp_lease_query_lib, + dhcp_flex_id_lib, + dhcp_ddns_tuning_lib, + dhcp_lease_cmds_lib, + dhcp_radius_lib, + dhcp_run_script_lib, + dhcp_user_chk_lib, + dhcp6_lib, + kea_testutils_lib, + fuzz_lib, + ] + fuzz_libs += maybe_ddns_gss_tsig_lib + foreach i : [ + 'fuzz_dhcp_parser6', + 'fuzz_dhcp_pkt6', + 'fuzz_dhcp_pkt_process6', + 'fuzz_eval6', + 'fuzz_hook_ddns_tuning6', + 'fuzz_hook_flex_id6', + 'fuzz_hook_lease_query6', + 'fuzz_hook_radius6', + 'fuzz_hook_run_script6', 'fuzz_hook_user_chk6', - 'fuzz_http', - 'fuzz_ioaddress', - 'fuzz_util', ] FUZZING_HARNESSES += static_library( i, @@ -132,21 +190,7 @@ if cpp.get_id() == 'clang' cpp_args: cpp_flags, dependencies: [CRYPTO_DEP, GTEST_DEP, KRB5_DEP], include_directories: includes, - link_with: [ - d2_lib, - ddns_gss_tsig_lib, - dhcp_lease_query_lib, - dhcp_flex_id_lib, - dhcp_ddns_tuning_lib, - dhcp_lease_cmds_lib, - dhcp_radius_lib, - dhcp_run_script_lib, - dhcp_user_chk_lib, - dhcp4_lib, - dhcp6_lib, - kea_testutils_lib, - fuzz_lib, - ] + LIBS_BUILT_SO_FAR, + link_with: fuzz_libs + LIBS_BUILT_SO_FAR, build_rpath: BUILD_RPATH, ) endforeach -- 2.47.3