]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Meson: Refactor handling of module-lmdb dependencies
authorFred Morcos <fred.morcos@open-xchange.com>
Mon, 27 Nov 2023 12:51:19 +0000 (13:51 +0100)
committerFred Morcos <fred.morcos@open-xchange.com>
Wed, 20 Mar 2024 12:28:57 +0000 (13:28 +0100)
meson.build
meson/boost-serialization/meson.build
meson/lmdb/meson.build

index 9ca9b29ed50b0b7dd76b14364934c835fe798d71..3c04db684de57be8909f35616c23c79fdc59929c 100644 (file)
@@ -58,6 +58,7 @@ subdir('meson' / 'clock-gettime')           # Clock_gettime
 subdir('meson' / 'boost')                   # Boost
 subdir('meson' / 'boost-program-options')   # Boost Program Options Library
 subdir('meson' / 'boost-test')              # Boost Testing Library
+subdir('meson' / 'boost-serialization')     # Boost Serialization Library
 subdir('meson' / 'reproducible')            # Reproducible Builds
 subdir('meson' / 'dlopen')                  # dlopen
 subdir('meson' / 'verbose-logging')         # Verbose Logging
@@ -73,6 +74,7 @@ subdir('meson' / 'various-functions')       # Various Functions
 subdir('meson' / 'various-headers')         # Various Headers
 subdir('meson' / 'yaml-cpp')                # YAML C++
 subdir('meson' / 'sqlite3')                 # Sqlite3
+subdir('meson' / 'lmdb')                    # LMDB
 
 # Manpages
 # if not fs.exists('docs' / 'pdns_server.1') and not python_have_venv
@@ -91,6 +93,9 @@ ext_modules = [
   'protozero',
   'yahttp',
 ]
+if get_option('module-lmdb') != 'disabled'
+  ext_modules += 'lmdb-safe'
+endif
 subdir('ext')
 
 deps = [
@@ -121,21 +126,23 @@ deps = [
   dep_yahttp,
   dep_yaml_cpp,
   dep_sqlite3,
+  dep_lmdb,
+  dep_boost_serialization,
 ]
 
 # Modules
 all_modules = {
-  'bind':     {'deps': [],                              'exts': []},
-  'pipe':     {'deps': [],                              'exts': []},
-  'gmysql':   {'deps': ['mysql'],                       'exts': []},
-  'godbc':    {'deps': ['odbc'],                        'exts': []},
-  'gpgsql':   {'deps': ['pgsql'],                       'exts': []},
-  'ldap':     {'deps': ['ldap'],                        'exts': []},
-  'lua2':     {'deps': [],                              'exts': []},
-  'remote':   {'deps': ['prog-curl', 'zeromq'],         'exts': []},
-  'tinydns':  {'deps': ['cdb'],                         'exts': []},
-  'geoip':    {'deps': ['geoip', 'mmdb', 'cxx-fs'],     'exts': []},
-  'lmdb':     {'deps': ['lmdb', 'boost-serialization'], 'exts': ['lmdb-safe']},
+  'bind':     {'deps': [],                             },
+  'pipe':     {'deps': [],                             },
+  'gmysql':   {'deps': ['mysql'],                      },
+  'godbc':    {'deps': ['odbc'],                       },
+  'gpgsql':   {'deps': ['pgsql'],                      },
+  'ldap':     {'deps': ['ldap'],                       },
+  'lua2':     {'deps': [],                             },
+  'remote':   {'deps': ['prog-curl', 'zeromq'],        },
+  'tinydns':  {'deps': ['cdb'],                        },
+  'geoip':    {'deps': ['geoip', 'mmdb', 'cxx-fs'],    },
+  'lmdb':     {'deps': [],},
 }
 
 # Configure module dependencies
@@ -172,7 +179,6 @@ 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
@@ -182,10 +188,6 @@ foreach module_name, module_props: all_modules
     selected_dyn_modules += module_name
   endif
 
-  foreach ext: module_exts
-    subdir('ext' / ext)
-  endforeach
-
   subdir('modules' / module_backend_name)
   dep_modules += get_variable('dep_' + module_backend_name)
 endforeach
index e83b1c5341a0d63f84504b14554b5a84b99c6c7a..6a797da690d9d95e9d6c443bd8f318c7c813a44d 100644 (file)
@@ -1,2 +1,7 @@
-dep_boost_serialization = dependency('boost', modules: ['serialization'], required: true)
-summary('Serialization', dep_boost_serialization.found(), bool_yn: true, section: 'Boost')
+dep_boost_serialization = dependency('', required: false)
+
+if get_option('module-lmdb') != 'disabled'
+  dep_boost_serialization = dependency('boost', modules: ['serialization'], required: true)
+endif
+
+summary('Serialization (LMDB)', dep_boost_serialization.found(), bool_yn: true, section: 'Boost')
index 31b2e08fcd8011e3519d762a9d8d8ea54fae1a96..267ad990c8875a248ff19194c9166d22def49882 100644 (file)
@@ -1,4 +1,9 @@
-dep_lmdb = dependency('lmdb', required: true)
+dep_lmdb = dependency('', required: false)
+
+if get_option('module-lmdb') != 'disabled'
+  dep_lmdb = dependency('lmdb', required: true)
+endif
+
 conf.set('HAVE_LMDB', dep_lmdb.found(), description: 'Whether we have LMDB')
 summary('LMDB', dep_lmdb.found(), bool_yn: true, section: 'LMDB')
 if dep_lmdb.found()