xmake.lua 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package("libpq")
  2. set_homepage("https://www.postgresql.org/docs/14/libpq.html")
  3. set_description("Postgres C API library")
  4. set_license("PostgreSQL")
  5. add_extsources("apt::libpq-dev", "brew::libpq", "pacman::postgresql-libs")
  6. add_urls("https://github.com/postgres/postgres/archive/refs/tags/REL_$(version).tar.gz", {alias = "github", version = function (version)
  7. return version:gsub("%.", "_")
  8. end})
  9. add_versions("17.5", "476e0522af981352177c12a05295b08d2f49b35c667aecb5bae1af4807999467")
  10. add_versions("14.1", "14809c9f669851ab89b344a50219e85b77f3e93d9df9e255b9781d8d60fcfbc9")
  11. add_deps("pkgconf", "meson", "ninja", "openssl", "zlib", "bison")
  12. on_load(function (package)
  13. if package:is_plat("macosx", "windows") then
  14. package:add("deps", "libintl")
  15. end
  16. if package:is_plat("macosx", "linux", "bsd", "windows") and package:is_arch("i386") ~= false then
  17. package:add("deps", "flex")
  18. end
  19. if package:is_plat("bsd") then
  20. package:add("deps", "libedit")
  21. end
  22. end)
  23. on_install("windows|!arm64", "macosx", "linux", "bsd", function (package)
  24. local configs = {"-Dssl=openssl", "-Dzlib=enabled"}
  25. table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static"))
  26. if package:is_plat("bsd") then
  27. table.insert(configs, "-Dreadline=disabled")
  28. table.insert(configs, "-Dlibedit_preferred=true")
  29. end
  30. import("package.tools.meson").install(package, configs)
  31. end)
  32. on_test(function (package)
  33. assert(package:has_cfuncs("PQconnectdb", {includes = "libpq-fe.h"}))
  34. end)