From: Fred Morcos Date: Mon, 11 Sep 2023 09:06:05 +0000 (+0200) Subject: Meson: Rework backend handling to fix some issues X-Git-Tag: rec-5.1.0-alpha1~80^2~106 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80769082342c089a4f8bf74007f6fe644b42f753;p=thirdparty%2Fpdns.git Meson: Rework backend handling to fix some issues This separates the configuration (i.e. detection) of backend module dependencies, and the modules building step which allows us to support: 1) First detecting dependencies for backend modules. Making options and deps available for building libpdns-related artifacts. 2) Using libpdns deps in modules. --- diff --git a/meson.build b/meson.build index 86547a1cbe..3684080692 100644 --- a/meson.build +++ b/meson.build @@ -133,21 +133,13 @@ all_modules = { 'lmdb': {'deps': ['lmdb', 'boost-serialization'], 'exts': ['lmdb-safe']}, } -selected_modules = [] -selected_dyn_modules = [] -dep_modules = [] +# Configure module dependencies foreach module_name, module_props: all_modules - module_backend_name = module_name + 'backend' module_opt = get_option('module-' + module_name) module_deps = module_props['deps'] - module_exts = module_props['exts'] if module_opt == 'disabled' continue - elif module_opt == 'static' - selected_modules += module_name - else - selected_dyn_modules += module_name endif foreach dep: module_deps @@ -165,6 +157,28 @@ foreach module_name, module_props: all_modules subdir('meson' / dep) endforeach +endforeach + +# Add the sqlite3 dependency for the bind and gsqlite3 backends and pdnsutil. +deps += get_variable('dep_sqlite3', dependency('', required: false)) + +subdir('pdns') + +selected_modules = [] +selected_dyn_modules = [] +dep_modules = [] +foreach module_name, module_props: all_modules + module_backend_name = module_name + 'backend' + module_opt = get_option('module-' + module_name) + module_exts = module_props['exts'] + + if module_opt == 'disabled' + continue + elif module_opt == 'static' + selected_modules += module_name + else + selected_dyn_modules += module_name + endif foreach ext: module_exts subdir('ext' / ext) @@ -186,16 +200,9 @@ conf.set_quoted( description: 'Dynamically loadable modules built along with pdns' ) -# TODO This should be cleaned up -if get_variable('dep_sqlite3', dependency('', required: false)).found() - deps += dep_sqlite3 -endif - # Generate config.h config_h = configure_file(configuration: conf, output: 'config.h') -subdir('pdns') - pdns_auth = executable( 'pdns-auth', config_h,