]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Meson: Move modules handling to modules/ dir 14175/head
authorFred Morcos <fred.morcos@open-xchange.com>
Wed, 15 May 2024 09:47:18 +0000 (11:47 +0200)
committerFred Morcos <fred.morcos@open-xchange.com>
Wed, 15 May 2024 11:09:10 +0000 (13:09 +0200)
This simplifies a bit the handling of modules, and puts the backend artifacts in a
directory similar to how autotools did it, this helps simplify adapting the regression
tests harness to support our Meson builds.

14 files changed:
meson.build
modules/bindbackend/meson.build
modules/geoipbackend/meson.build
modules/gmysqlbackend/meson.build
modules/godbcbackend/meson.build
modules/gpgsqlbackend/meson.build
modules/gsqlite3backend/meson.build
modules/ldapbackend/meson.build
modules/lmdbbackend/meson.build
modules/lua2backend/meson.build
modules/meson.build [new file with mode: 0644]
modules/pipebackend/meson.build
modules/remotebackend/meson.build
modules/tinydnsbackend/meson.build

index f09590f5aa3b521c733ecab71af448448da17dd1..9a5617ffb9b17339bb50b972f5e3bc23b64ae1a6 100644 (file)
@@ -669,43 +669,7 @@ if dep_cdb.found()
   )
 endif
 
-# Modules
-all_modules = [
-  'bind',
-  'pipe',
-  'gmysql',
-  'godbc',
-  'gpgsql',
-  'gsqlite3',
-  'ldap',
-  'lua2',
-  'remote',
-  'tinydns',
-  'geoip',
-  'lmdb',
-]
-
-selected_modules = []
-selected_dyn_modules = []
-dep_modules = []
-foreach module_name: all_modules
-  module_backend_name = module_name + 'backend'
-  module_opt = get_option('module-' + module_name)
-
-  if module_opt == 'disabled'
-    continue
-  elif module_opt == 'static'
-    selected_modules += module_name
-  else
-    selected_dyn_modules += module_name
-  endif
-
-  subdir('modules' / module_backend_name)
-  dep_modules += get_variable('dep_' + module_backend_name)
-endforeach
-
-conf.set_quoted('PDNS_MODULES', ' '.join(selected_modules), description: 'Built-in modules')
-conf.set_quoted('PDNS_DYN_MODULES', ' '.join(selected_dyn_modules), description: 'Loadable modules')
+subdir('modules')
 
 # Generate config.h
 config_h = configure_file(configuration: conf, output: 'config.h')
index fc2bca6d6f3a164d3105c991ec13ec996540c191..cea3a5f09beae993da189b8c0d8a1ac2b416a100 100644 (file)
@@ -1,33 +1,14 @@
-sources = [
+module_sources = files(
   'bindbackend2.cc',
   'binddnssec.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'bindbackend2.hh',
 
   # TODO These should be packaged up some other way (and avoid product_source_dir)
   product_source_dir / 'pdns' / 'bind-dnssec.4.2.0_to_4.3.0_schema.sqlite3.sql',
   product_source_dir / 'pdns' / 'bind-dnssec.schema.sqlite3.sql',
-]
-
-module_deps = [deps]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: [
-    module_deps,
-    libpdns_bindparser,
-  ],
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps]
index d779cdbf35b0ebb1cc07fc9a45ad52eca26945f3..673d923d3955ff5b20fd2db1cf00b8e3fec5a522 100644 (file)
@@ -1,29 +1,13 @@
-sources = [
+module_sources = files(
   'geoipbackend.cc',
   'geoipinterface-dat.cc',
   'geoipinterface-mmdb.cc',
   'geoipinterface.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'geoipbackend.hh',
   'geoipinterface.hh',
-]
-
-module_deps = [deps, dep_geoip, dep_mmdb, dep_yaml_cpp]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps, dep_geoip, dep_mmdb, dep_yaml_cpp]
index 385956d8bf05b1ff2b5e4dd4cc77c5aaf5d10e95..624438b01294a461c2d307a6007965dd5e55f9b2 100644 (file)
@@ -1,9 +1,9 @@
-sources = [
+module_sources = files(
   'gmysqlbackend.cc',
   'smysql.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'gmysqlbackend.hh',
   'smysql.hh',
 
@@ -15,22 +15,6 @@ extras = [
   '4.2.0_to_4.3.0_schema.mysql.sql',
   '4.3.0_to_4.7.0_schema.mysql.sql',
   'schema.mysql.sql',
-]
-
-module_deps = [deps, dep_mysql]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps, dep_mysql]
index e66b0e354ef430bd38503e4e832fddff0fe9dd92..880d872e89a3caabe90e37c446b229aa5ac6ae5d 100644 (file)
@@ -1,9 +1,9 @@
-sources = [
+module_sources = files(
   'godbcbackend.cc',
   'sodbc.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'godbcbackend.hh',
   'sodbc.hh',
 
@@ -11,22 +11,6 @@ extras = [
   '4.0.0_to_4.2.0_schema.mssql.sql',
   '4.2.0_to_4.3.0_schema.mssql.sql',
   '4.3.0_to_4.7.0_schema.mssql.sql',
-]
-
-module_deps = [deps, dep_odbc]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps, dep_odbc]
index 4f72b5ef81c7c2787993eb20de38392b937843bd..a4d5d236585a91c19fa2aad9ddf39d5bc363d18b 100644 (file)
@@ -1,9 +1,9 @@
-sources = [
+module_sources = files(
   'gpgsqlbackend.cc',
   'spgsql.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'gpgsqlbackend.hh',
   'spgsql.hh',
 
@@ -14,22 +14,6 @@ extras = [
   '4.1.0_to_4.2.0_schema.pgsql.sql',
   '4.2.0_to_4.3.0_schema.pgsql.sql',
   '4.3.0_to_4.7.0_schema.pgsql.sql',
-]
-
-module_deps = [deps, dep_pgsql]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps, dep_pgsql]
index 83f85081844a77076ae107ae135b5d272b6f1fbb..0fdeab7f79985b2b4b573bef26665263af25c624 100644 (file)
@@ -1,8 +1,8 @@
-sources = [
+module_sources = files(
   'gsqlite3backend.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'gsqlite3backend.hh',
 
   'dnssec-3.x_to_3.4.0_schema.sqlite3.sql',
@@ -13,22 +13,6 @@ extras = [
   '4.3.0_to_4.3.1_schema.sqlite3.sql',
   '4.3.1_to_4.7.0_schema.sqlite3.sql',
   'schema.sqlite3.sql',
-]
-
-module_deps = [deps, dep_sqlite3]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps, dep_sqlite3]
index e0291eae789fe8952d9b510eda98fa277b96ff8e..d21466b826966a298202c523d482adb967ad3fdb 100644 (file)
@@ -1,13 +1,13 @@
-sources = [
+module_sources = files(
   'ldapauthenticator.cc',
   'ldapbackend.cc',
   'ldaputils.cc',
   'native.cc',
   'powerldap.cc',
   'primary.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'exceptions.hh',
   'ldapauthenticator.hh',
   'ldapauthenticator_p.hh',
@@ -18,22 +18,6 @@ extras = [
 
   'dnsdomain2.schema',
   'pdns-domaininfo.schema',
-]
-
-module_deps = [deps, dep_ldap]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps, dep_ldap]
index d2f9a4a6cd9ec5e3ba4448cf1c7e091d92de1d7a..45227416a9c3d508d2069abbe34ea3c0cac1c671 100644 (file)
@@ -1,25 +1,9 @@
-sources = [
+module_sources = files(
   'lmdbbackend.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'lmdbbackend.hh',
-]
-
-module_deps = [deps, dep_lmdb_safe, dep_lmdb, dep_boost_serialization]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps, dep_lmdb_safe, dep_lmdb, dep_boost_serialization]
index 0256158ae6caf37a0bd3265ac3dcccd0e357659d..493fb402095f0711510012ee776fefc1db5a4d31 100644 (file)
@@ -1,27 +1,11 @@
-sources = [
+module_sources = files(
   'lua2api2.cc',
   'lua2backend.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'lua2backend.hh',
   'lua2api2.hh',
-]
-
-module_deps = [deps]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps]
diff --git a/modules/meson.build b/modules/meson.build
new file mode 100644 (file)
index 0000000..38d6cee
--- /dev/null
@@ -0,0 +1,54 @@
+# Modules
+all_modules = [
+  'bind',
+  'pipe',
+  'gmysql',
+  'godbc',
+  'gpgsql',
+  'gsqlite3',
+  'ldap',
+  'lua2',
+  'remote',
+  'tinydns',
+  'geoip',
+  'lmdb',
+]
+
+selected_modules = []
+selected_dyn_modules = []
+dep_modules = []
+foreach module_name: all_modules
+  module_backend_name = module_name + 'backend'
+  module_dep_name = 'dep_' + module_backend_name
+  module_lib_name = 'module_' + module_backend_name + '_lib'
+  module_opt = get_option('module-' + module_name)
+
+  if module_opt == 'disabled'
+    continue
+  endif
+
+  subdir(module_backend_name)
+
+  module_lib = static_library(
+    module_backend_name,
+    sources: module_sources,
+    dependencies: module_deps,
+    extra_files: module_extras,
+  )
+
+  set_variable(module_lib_name, declare_dependency(link_whole: module_lib))
+
+  set_variable(module_dep_name, dependency('', required: false))
+  if module_opt == 'static'
+    set_variable(module_dep_name, get_variable(module_lib_name))
+    selected_modules += module_name
+  else
+    shared_module(module_backend_name, link_whole: module_lib, name_suffix: 'so')
+    selected_dyn_modules += module_name
+  endif
+
+  dep_modules += get_variable(module_dep_name)
+endforeach
+
+conf.set_quoted('PDNS_MODULES', ' '.join(selected_modules), description: 'Built-in modules')
+conf.set_quoted('PDNS_DYN_MODULES', ' '.join(selected_dyn_modules), description: 'Loadable modules')
index ecd72167c51d259e67b1e9489a24cef0afa38cc9..7e57bf57fc3ed24ce5f9ca9c7243674f80f71b57 100644 (file)
@@ -1,29 +1,13 @@
-sources = [
+module_sources = files(
   'coprocess.cc',
   'pipebackend.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'coprocess.hh',
   'pipebackend.hh',
 
   'backend.pl',
-]
-
-module_deps = [deps]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps]
index 0577d9be8039361c74a7319ada0a8fcae5598012..e4790932d8d5fde2f7d8a1d88cb31baba674bb89 100644 (file)
@@ -1,4 +1,4 @@
-sources = files(
+module_sources = files(
   'httpconnector.cc',
   'pipeconnector.cc',
   'remotebackend.cc',
@@ -6,30 +6,13 @@ sources = files(
   'zmqconnector.cc',
 )
 
-extras = files(
+module_extras = files(
   'remotebackend.hh',
 )
 
 module_deps = [deps, dep_zeromq]
 
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
-)
-
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
-
 if get_option('unit-tests-backends')
-  module_remotebackend_lib = declare_dependency(link_whole: lib)
   module_remotebackend_testrunner = files('testrunner.sh')[0]
 
   module_remotebackend_test_sources_common = files(
index 4f809ea5590075ea09ef19d8aa7a445ae71ee507..6f3b48bd690cdab1c7eb38fe0507d1342de11180 100644 (file)
@@ -1,25 +1,9 @@
-sources = [
+module_sources = files(
   'tinydnsbackend.cc',
-]
+)
 
-extras = [
+module_extras = files(
   'tinydnsbackend.hh',
-]
-
-module_deps = [deps, dep_cdb, libpdns_cdb]
-
-lib = static_library(
-  module_backend_name,
-  sources,
-  dependencies: module_deps,
-  extra_files: extras,
 )
 
-dep_name = 'dep_' + module_backend_name
-set_variable(dep_name, dependency('', required: false))
-if module_opt == 'static'
-  dep = declare_dependency(link_whole: lib)
-  set_variable(dep_name, dep)
-else
-  shared_module(module_backend_name, link_whole: lib, name_suffix: 'so')
-endif
+module_deps = [deps, dep_cdb, libpdns_cdb]