]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Meson: Refactor the building of tools and their libraries
authorFred Morcos <fred.morcos@open-xchange.com>
Mon, 6 Nov 2023 11:22:19 +0000 (12:22 +0100)
committerFred Morcos <fred.morcos@open-xchange.com>
Wed, 20 Mar 2024 12:28:54 +0000 (13:28 +0100)
meson.build
pdns/meson.build

index 44e1519a41a25b8d221c4da60817627f462bef1d..a727eae1c2e88df803f4b9d42812b11b57ce28ea 100644 (file)
@@ -227,70 +227,27 @@ pdns_auth = executable(
   ],
 )
 
-pdns_util = executable(
-  'pdns-util',
-  config_h,
-  dependencies: [
-    libpdns_util,
-  ],
-)
+tools = ['util', 'auth-control', 'zone2sql', 'zone2json']
 
-pdns_auth_control = executable(
-  'pdns-auth-control',
-  config_h,
-  dependencies: [
-    libpdns_auth_control,
-  ],
-)
+if get_option('module-ldap') != 'disabled'
+  tools += 'zone2ldap'
+endif
 
-pdns_zone2sql = executable(
-  'pdns-zone2sql',
-  config_h,
-  dependencies: [
-    libpdns_zone2sql,
-  ],
-)
+if get_option('tools')
+  tools += ['sdig', 'calidns', 'dumresp']
 
-if get_option('module-ldap') != 'disabled'
-  pdns_zone2ldap = executable(
-    'pdns-zone2ldap',
-    config_h,
-    dependencies: [
-      libpdns_zone2ldap,
-    ],
-  )
 endif
 
-pdns_zone2json = executable(
-  'pdns-zone2json',
-  config_h,
-  dependencies: [
-    libpdns_zone2json,
-  ],
-)
 
-if get_option('tools')
-  pdns_sdig = executable(
-    'pdns-sdig',
-    config_h,
-    dependencies: [
-      libpdns_sdig,
-    ],
-  )
 
-  pdns_calidns = executable(
-    'pdns-calidns',
-    config_h,
-    dependencies: [
-      libpdns_calidns,
-    ],
-  )
 
-  pdns_dumresp = executable(
-    'pdns-dumresp',
-    config_h,
-    dependencies: [
-      libpdns_dumresp,
-    ],
+foreach tool: tools
+  set_variable(
+    'pdns_' + tool.underscorify(),
+    executable(
+      'pdns-' + tool,
+      sources: [config_h],
+      dependencies: [get_variable('libpdns_' + tool.underscorify())],
+    )
   )
-endif
+endforeach
index fd1fc19382914c140568b50c0d29dfcb048a10c2..811daafa90396ef311aade33bfd5ba49144758c0 100644 (file)
@@ -538,124 +538,59 @@ if enable_ipcipher
   )
 endif
 
-libpdns_util = declare_dependency(
-  link_whole: static_library(
-    'pdns-util',
-    'pdnsutil.cc',
-    'zonemd.cc',
-    extra_files: [
-      'zonemd.hh',
-    ],
-    dependencies: [
-      deps,
-      libpdns_base,
-      libpdns_auth,
-      libpdns_bind_dnssec_schema,
-      libpdns_ipcipher,
-    ],
-  )
-)
-
-libpdns_auth_control = declare_dependency(
-  link_whole: static_library(
-    'pdns-auth-control',
-    'dynloader.cc',
-    'dynmessenger.cc',
-    extra_files: [
-      'dynmessenger.hh',
-    ],
-    dependencies: [
-      deps,
-      libpdns_common,
-    ],
-  )
-)
-
-libpdns_zone2sql = declare_dependency(
-  link_whole: static_library(
-    'pdns-zone2sql',
-    'zone2sql.cc',
-    extra_files: [],
-    dependencies: [
-      deps,
-      libpdns_common,
-      libpdns_bind_parser,
-    ],
-  )
-)
-
-libpdns_zone2ldap = declare_dependency(
-  link_whole: static_library(
-    'pdns-zone2ldap',
-    'zone2ldap.cc',
-    extra_files: [],
-    dependencies: [
-      deps,
-      libpdns_common,
-      libpdns_bind_dnssec_schema,
-      libpdns_bind_parser,
-    ],
-  )
-)
-
-libpdns_zone2json = declare_dependency(
-  link_whole: static_library(
-    'pdns-zone2json',
-    'zone2json.cc',
-    extra_files: [],
-    dependencies: [
-      deps,
-      libpdns_common,
-      libpdns_bind_dnssec_schema,
-      libpdns_bind_parser,
-    ],
-  )
-)
-
-libpdns_sdig = declare_dependency(
-  link_whole: static_library(
-    'pdns-sdig',
-    'ednsextendederror.cc',
-    'libssl.cc',
-    'sdig.cc',
-    'tcpiohandler.cc',
-    extra_files: [
-      'dolog.hh',
-      'ednsextendederror.hh',
-      'libssl.hh',
-      'sstuff.hh',
-      'tcpiohandler.hh',
-    ],
-    dependencies: [
-      deps,
-      libpdns_common,
-      libpdns_minicurl,
-    ],
-  )
-)
-
-libpdns_calidns = declare_dependency(
-  link_whole: static_library(
-    'pdns-calidns',
-    'calidns.cc',
-    extra_files: [
-      'sstuff.hh',
-    ],
-    dependencies: [
-      deps,
-      libpdns_common,
-    ],
-  )
-)
-
-libpdns_dumresp = declare_dependency(
-  link_whole: static_library(
-    'pdns-dumresp',
-    'dumresp.cc',
-    extra_files: [],
-    dependencies: [
-      deps,
-      libpdns_common,
-    ],
+tool_libs = {
+  'util': {
+    'sources': ['pdnsutil.cc', 'zonemd.cc'],
+    'headers': ['zonemd.hh'],
+    'deps': [deps, libpdns_base, libpdns_auth, libpdns_bind_dnssec_schema, libpdns_ipcipher],
+  },
+  'auth-control': {
+    'sources': ['dynloader.cc', 'dynmessenger.cc'],
+    'headers': ['dynmessenger.hh'],
+    'deps': [deps, libpdns_common],
+  },
+  'zone2sql': {
+    'sources': ['zone2sql.cc'],
+    'headers': [],
+    'deps': [deps, libpdns_common, libpdns_bind_parser],
+  },
+  'zone2ldap': {
+    'sources': ['zone2ldap.cc'],
+    'headers': [],
+    'deps': [deps, libpdns_common, libpdns_bind_parser, libpdns_bind_dnssec_schema],
+  },
+  'zone2json': {
+    'sources': ['zone2json.cc'],
+    'headers': [],
+    'deps': [deps, libpdns_common, libpdns_bind_parser, libpdns_bind_dnssec_schema],
+  },
+  'sdig': {
+    'sources': ['ednsextendederror.cc', 'libssl.cc', 'sdig.cc', 'tcpiohandler.cc'],
+    'headers': ['dolog.hh', 'ednsextendederror.hh', 'libssl.hh', 'sstuff.hh', 'tcpiohandler.hh'],
+    'deps': [deps, libpdns_common, libpdns_minicurl],
+  },
+  'calidns': {
+    'sources': ['calidns.cc'],
+    'headers': ['sstuff.hh'],
+    'deps': [deps, libpdns_common],
+  },
+  'dumresp': {
+    'sources': ['dumresp.cc'],
+    'headers': [],
+    'deps': [deps, libpdns_common],
+  },
+}
+
+foreach tool_name, tool_info: tool_libs
+  set_variable(
+    'libpdns_' + tool_name.underscorify(),
+    declare_dependency(
+      link_whole: static_library(
+        'pdns-' + tool_name,
+        sources: tool_info['sources'],
+        extra_files: tool_info['headers'],
+        dependencies: tool_info['deps'],
+      )
+    )
   )
-)
+endforeach