]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: try to find ldap libs in case pkconfig is missing (happens on debian11)
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Fri, 24 Jan 2025 14:37:22 +0000 (15:37 +0100)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Fri, 24 Jan 2025 14:37:22 +0000 (15:37 +0100)
meson/ldap/meson.build

index bd659543d870dab1f28d5d56d763e1e9af602de2..d7e637c14d42c6be8fb98d95a666040bbbfbbcf9 100644 (file)
@@ -1,10 +1,28 @@
 dep_ldap = dependency('', required: false)
 
 if get_option('module-ldap') != 'disabled'
-  dep_ldap_internal = dependency('ldap', required: true)
-  dep_lber_internal = dependency('lber', required: true)
+  dep_ldap_internal = dependency('ldap', required: false)
+  dep_lber_internal = dependency('lber', required: false)
   dep_krb5_internal = dependency('krb5', required: true)
 
+  if not dep_ldap_internal.found()
+    lib_ldap_internal = cxx.find_library('ldap', disabler: true, required: false)
+    if lib_ldap_internal.found()
+      if cxx.links(prog, name: '-lldap is needed', dependencies: lib_ldap_internal)
+        dep_ldap_internal = declare_dependency(dependencies: lib_ldap_internal)
+      endif
+    endif
+  endif
+  if not dep_lber_internal.found()
+    lib_lber_internal = cxx.find_library('lber', disabler: true, required: false)
+    if lib_lber_internal.found()
+      if cxx.links(prog, name: '-lber is needed', dependencies: lib_lber_internal)
+        dep_lber_internal = declare_dependency(dependencies: lib_lber_internal)
+      endif
+    endif
+  endif
+
   conf.set('HAVE_LIBLDAP', dep_ldap_internal.found(), description: 'Have libldap')
 
   have_ldap_initialize = cxx.has_function('ldap_initialize', dependencies: dep_ldap_internal)