xmake.lua 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package("xapian-core")
  2. set_homepage("https://savannah.gnu.org/projects/osip")
  3. set_description("Xapian is an Open Source Search Engine Library, with bindings to allow use from Perl, Python 2, Python 3, PHP 5, PHP 7, Java, Tcl, C#, Ruby, Lua, Erlang, Node.js, R.")
  4. set_license("GPL-2.0-or-later")
  5. add_urls("https://oligarchy.co.uk/xapian/$(version)/xapian-core-$(version).tar.xz")
  6. add_versions("1.4.27", "bcbc99cfbf16080119c2571fc296794f539bd542ca3926f17c2999600830ab61")
  7. add_versions("1.4.28", "3d0976e142217c1baba48bf89b405e674422e7e4448ae5016f67fe0dd49daa07")
  8. add_versions("1.4.29", "c55c9bc8613ad3ec2c218eafca088c218ab7cddcba7ef08f3af0e542f4e521bc")
  9. if is_plat("wasm") then
  10. add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
  11. end
  12. if is_plat("windows", "mingw") then
  13. add_syslinks("ws2_32", "rpcrt4")
  14. elseif is_plat("linux", "bsd") then
  15. add_syslinks("m")
  16. end
  17. add_deps("autotools", "zlib")
  18. if is_plat("mingw") then
  19. add_deps("ssp")
  20. else
  21. add_deps("libuuid")
  22. end
  23. on_check("android", function (package)
  24. if package:is_arch("armeabi-v7a") then
  25. local ndk = package:toolchain("ndk")
  26. local ndk_sdkver = ndk:config("ndk_sdkver")
  27. assert(ndk_sdkver and tonumber(ndk_sdkver) >= 24, "package(xapian/armeabi-v7a): need ndk api level >= 24")
  28. end
  29. end)
  30. on_install("linux", "macosx", "bsd", "mingw", "msys", "android@linux,macosx", "cross", "wasm", function (package)
  31. io.replace("include/xapian/version_h.cc", "#elif defined _MSC_VER", "#elif 0", {plain = true})
  32. io.replace("configure.ac", "dnl Check for zlib.h.", [[
  33. enable_zlib_checks=no
  34. if test "x$enable_zlib_checks" = "xyes"; then
  35. dnl Check for zlib.h.
  36. ]], {plain = true})
  37. io.replace("configure.ac", "dnl Find a way to generate UUIDs.", [[
  38. fi
  39. PKG_CHECK_MODULES([ZLIB], [zlib], [],[AC_MSG_ERROR([zlib library not found])])
  40. CFLAGS="$LIBS $ZLIB_CFLAGS"
  41. LIBS="$ZLIB_LIBS $LIBS"
  42. dnl Find a way to generate UUIDs.
  43. ]], {plain = true})
  44. local configs = {}
  45. table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
  46. table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
  47. local packagedeps = {"zlib"}
  48. if package:is_plat("mingw") then
  49. table.insert(packagedeps, "ssp")
  50. else
  51. table.insert(packagedeps, "libuuid")
  52. end
  53. import("package.tools.autoconf").install(package, configs, {packagedeps = packagedeps})
  54. end)
  55. on_test(function (package)
  56. assert(package:check_cxxsnippets({test = [[
  57. void test() {
  58. Xapian::version_string();
  59. }
  60. ]]}, {configs = {languages = "c++11"}, includes = "xapian.h"}))
  61. end)