]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Testrunner now works
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Tue, 9 Jul 2024 14:25:44 +0000 (16:25 +0200)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 10 Jul 2024 11:25:48 +0000 (13:25 +0200)
meson/libsnmp/meson.build
pdns/recursordist/meson.build

index 8f06725bf5f30a05171c9ba6e048eac797e78515..a39100ab58b2beda415e59c7ff59f47d01d04ab3 100644 (file)
@@ -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)
index 6fa970e31aa327fc6d615d649b6e9d0b461b734c..f3d751ca83792cfe07bc61b0955afde472368f80 100644 (file)
@@ -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,
       ],
     )
   )