From b1ad49b309e4e158c0c9fd293ecbb2563a3f0926 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Tue, 9 Jul 2024 16:25:44 +0200 Subject: [PATCH] Testrunner now works --- meson/libsnmp/meson.build | 2 ++ pdns/recursordist/meson.build | 67 ++++++++++++++++++++++++----------- 2 files changed, 49 insertions(+), 20 deletions(-) diff --git a/meson/libsnmp/meson.build b/meson/libsnmp/meson.build index 8f06725bf5..a39100ab58 100644 --- a/meson/libsnmp/meson.build +++ b/meson/libsnmp/meson.build @@ -1,5 +1,7 @@ opt_libsnmp = get_option('snmp') +dep_libsnmp = declare_dependency() + if get_option('snmp') snmp_config = find_program('net-snmp-config', required: true) snmp_ldflags_res = run_command(snmp_config, '--libs', check: true) diff --git a/pdns/recursordist/meson.build b/pdns/recursordist/meson.build index 6fa970e31a..f3d751ca83 100644 --- a/pdns/recursordist/meson.build +++ b/pdns/recursordist/meson.build @@ -91,8 +91,6 @@ common_sources += files( src_dir / 'axfr-retriever.cc', src_dir / 'base32.cc', src_dir / 'base64.cc', - src_dir / 'capabilities.cc', - src_dir / 'channel.cc', src_dir / 'coverage.cc', src_dir / 'credentials.cc', src_dir / 'dns.cc', @@ -121,8 +119,6 @@ common_sources += files( src_dir / 'mtasker_context.cc', src_dir / 'negcache.cc', src_dir / 'nsecrecords.cc', - src_dir / 'opensslsigners.cc', - src_dir / 'pdns_recursor.cc', src_dir / 'pollmplexer.cc', src_dir / 'protozero.cc', src_dir / 'proxy-protocol.cc', @@ -139,14 +135,10 @@ common_sources += files( src_dir / 'rec-system-resolve.cc', src_dir / 'rec-taskqueue.cc', src_dir / 'rec-tcounters.cc', - src_dir / 'rec-tcp.cc', - src_dir / 'rec-tcpout.cc', src_dir / 'rec-zonetocache.cc', src_dir / 'rec_channel.cc', src_dir / 'rec_channel_rec.cc', src_dir / 'recpacketcache.cc', - src_dir / 'rec-snmp.cc', - src_dir / 'rec-tcp.cc', src_dir / 'recursor_cache.cc', src_dir / 'reczones-helpers.cc', src_dir / 'reczones.cc', @@ -192,18 +184,6 @@ conditional_sources = { ], 'condition': dep_dnstap.found(), }, - 'libsodium': { - 'sources': [ - src_dir / 'sodiumsigners.cc', - ], - 'condition': dep_libsodium.found(), - }, - 'libdecaf': { - 'sources': [ - src_dir / 'decafsigners.cc', - ], - 'condition': dep_libdecaf.found(), - }, } foreach name, info: conditional_sources @@ -250,6 +230,38 @@ deps = [ dep_libcurl, ] +# Conditional sources that need to be separated into standalone libraries for special +# linking without implicitly getting rid of symbols. +libpdns_signers_sodium = dependency('', required: false) +if dep_libsodium.found() + libpdns_signers_sodium = declare_dependency( + link_whole: static_library( + 'pdns-signers-sodium', + sources: files(src_dir / 'sodiumsigners.cc'), + dependencies: [dep_boost, dep_libsodium], + ) + ) +endif + +libpdns_signers_decaf = dependency('', required: false) +if dep_libdecaf.found() + libpdns_signers_decaf = declare_dependency( + link_whole: static_library( + 'pdns-signers-decaf', + sources: files(src_dir / 'decafsigners.cc'), + dependencies: [dep_boost, dep_libdecaf], + ) + ) +endif + +libpdns_signers_openssl = declare_dependency( + link_whole: static_library( + 'pdns-signers-openssl', + sources: files(src_dir / 'opensslsigners.cc'), + dependencies: [dep_boost, dep_libssl], + ) +) + # XXX pub suffix list libpdns_dnslabeltext_source = src_dir / 'dnslabeltext.rl' @@ -293,6 +305,15 @@ libpdns_common = declare_dependency( tools = { 'pdns_recursor': { 'main': src_dir / 'rec-main.cc', + 'files-extra': [ + src_dir / 'capabilities.cc', + src_dir / 'channel.cc', + src_dir / 'pdns_recursor.cc', + src_dir / 'rec-tcp.cc', + src_dir / 'rec-tcpout.cc', + src_dir / 'rec-snmp.cc', + src_dir / 'rec-tcp.cc', + ], 'manpages': ['pdns_recursor.1'], 'deps-extra': [ dep_boost, @@ -302,6 +323,9 @@ tools = { dep_json11, dep_settings, dep_rust_settings, + libpdns_signers_openssl, + libpdns_signers_decaf, + libpdns_signers_sodium, ], }, 'rec_control': { @@ -374,6 +398,9 @@ if get_option('unit-tests') dep_lua, dep_settings, dep_rust_settings, + libpdns_signers_openssl, + libpdns_signers_decaf, + libpdns_signers_sodium, ], ) ) -- 2.47.2