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.
)
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')
-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]
-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]
-sources = [
+module_sources = files(
'gmysqlbackend.cc',
'smysql.cc',
-]
+)
-extras = [
+module_extras = files(
'gmysqlbackend.hh',
'smysql.hh',
'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]
-sources = [
+module_sources = files(
'godbcbackend.cc',
'sodbc.cc',
-]
+)
-extras = [
+module_extras = files(
'godbcbackend.hh',
'sodbc.hh',
'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]
-sources = [
+module_sources = files(
'gpgsqlbackend.cc',
'spgsql.cc',
-]
+)
-extras = [
+module_extras = files(
'gpgsqlbackend.hh',
'spgsql.hh',
'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]
-sources = [
+module_sources = files(
'gsqlite3backend.cc',
-]
+)
-extras = [
+module_extras = files(
'gsqlite3backend.hh',
'dnssec-3.x_to_3.4.0_schema.sqlite3.sql',
'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]
-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',
'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]
-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]
-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]
--- /dev/null
+# 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')
-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]
-sources = files(
+module_sources = files(
'httpconnector.cc',
'pipeconnector.cc',
'remotebackend.cc',
'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(
-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]