]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3732] Detect postgres under macos
authorAndrei Pavel <andrei@isc.org>
Thu, 3 Apr 2025 12:40:56 +0000 (15:40 +0300)
committerAndrei Pavel <andrei@isc.org>
Fri, 4 Apr 2025 09:37:27 +0000 (12:37 +0300)
subprojects/postgresql/meson.build

index 7f83f0a54be8fc56060a2340c5a88efadfd3f5c6..8fa06f93ccfd1b5d66e7ddad3371ad2268358504 100644 (file)
@@ -1,21 +1,40 @@
 project('postgresql')
 postgresql = disabler()
+
+cpp = meson.get_compiler('cpp')
+libpq = cpp.find_library('pq', required: false)
+
 pg_config = find_program('pg_config', required: false)
 if pg_config.found()
     cppflags = run_command([pg_config, '--cppflags'], check: false)
     includedir = run_command([pg_config, '--includedir'], check: false)
+    ldflags = run_command([pg_config, '--ldflags'], check: false)
+    libdir = run_command([pg_config, '--libdir'], check: false)
     libs = run_command([pg_config, '--libs'], check: false)
     version = run_command([pg_config, '--version'], check: false)
-    if cppflags.returncode() == 0 and includedir.returncode() == 0 and libs.returncode() == 0 and version.returncode() == 0
+    if cppflags.returncode() == 0 and includedir.returncode() == 0 and libdir.returncode() == 0 and ldflags.returncode() == 0 and libs.returncode() == 0 and version.returncode() == 0
         pgsql_compile_args = cppflags.stdout().split()
         pgsql_includedir_args = includedir.stdout().split()
+        pgsql_ldflags = ldflags.stdout().split()
+        pgsql_libdir = libdir.stdout().strip()
         pgsql_link_args = libs.stdout().split()
         pgsql_version = version.stdout().strip()
+
+        link_args = [pgsql_libdir] + pgsql_ldflags + pgsql_link_args
+        if libpq.found()
+            link_args += ['-lpq']
+        endif
+
         postgresql = declare_dependency(
             compile_args: pgsql_compile_args,
             include_directories: pgsql_includedir_args,
-            link_args: pgsql_link_args,
+            link_args: link_args,
             version: pgsql_version,
         )
     endif
 endif
+
+# Last resort
+if not postgresql.found()
+    postgresql = libpq
+endif