From: Fred Morcos Date: Mon, 6 Nov 2023 11:22:19 +0000 (+0100) Subject: Meson: Refactor the building of tools and their libraries X-Git-Tag: rec-5.1.0-alpha1~80^2~66 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51929c8efa103721e165f699bcd6cdd139356f59;p=thirdparty%2Fpdns.git Meson: Refactor the building of tools and their libraries --- diff --git a/meson.build b/meson.build index 44e1519a41..a727eae1c2 100644 --- a/meson.build +++ b/meson.build @@ -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 diff --git a/pdns/meson.build b/pdns/meson.build index fd1fc19382..811daafa90 100644 --- a/pdns/meson.build +++ b/pdns/meson.build @@ -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