xmake.lua 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package("sqlite3")
  2. set_homepage("https://sqlite.org/")
  3. set_description("The most used database engine in the world")
  4. set_urls("https://sqlite.org/$(version)", {version = function (version)
  5. local year = "2022"
  6. if version:le("3.36") then
  7. year = "2021"
  8. end
  9. if version:le("3.24") then
  10. year = "2018"
  11. end
  12. local version_str = version:gsub("[.+]", "")
  13. if #version_str < 7 then
  14. version_str = version_str .. "00"
  15. end
  16. return year .. "/sqlite-autoconf-" .. version_str .. ".tar.gz"
  17. end})
  18. add_versions("3.23.0+0", "b7711a1800a071674c2bf76898ae8584fc6c9643cfe933cfc1bc54361e3a6e49")
  19. add_versions("3.24.0+0", "d9d14e88c6fb6d68de9ca0d1f9797477d82fc3aed613558f87ffbdbbc5ceb74a")
  20. add_versions("3.34.0+100", "2a3bca581117b3b88e5361d0ef3803ba6d8da604b1c1a47d902ef785c1b53e89")
  21. add_versions("3.35.0+300", "ecbccdd440bdf32c0e1bb3611d635239e3b5af268248d130d0445a32daf0274b")
  22. add_versions("3.35.0+400", "7771525dff0185bfe9638ccce23faa0e1451757ddbda5a6c853bb80b923a512d")
  23. add_versions("3.36.0+0", "bd90c3eb96bee996206b83be7065c9ce19aef38c3f4fb53073ada0d0b69bbce3")
  24. add_versions("3.37.0+200", "4089a8d9b467537b3f246f217b84cd76e00b1d1a971fe5aca1e30e230e46b2d8")
  25. if is_plat("macosx", "linux", "bsd") then
  26. add_syslinks("pthread", "dl")
  27. end
  28. on_install(function (package)
  29. io.writefile("xmake.lua", [[
  30. add_rules("mode.debug", "mode.release")
  31. target("sqlite3")
  32. set_kind("$(kind)")
  33. add_files("sqlite3.c")
  34. add_headerfiles("sqlite3.h", "sqlite3ext.h")
  35. add_defines("SQLITE_ENABLE_EXPLAIN_COMMENTS", "SQLITE_ENABLE_DBPAGE_VTAB", "SQLITE_ENABLE_STMTVTAB", "SQLITE_ENABLE_DBSTAT_VTAB", "SQLITE_ENABLE_MATH_FUNCTIONS")
  36. if is_kind("shared") and is_plat("windows") then
  37. add_defines("SQLITE_API=__declspec(dllexport)")
  38. end
  39. ]])
  40. local configs = {}
  41. if package:config("shared") then
  42. configs.kind = "shared"
  43. end
  44. if not package:is_plat("windows", "mingw") and package:config("pic") ~= false then
  45. configs.cxflags = "-fPIC"
  46. end
  47. import("package.tools.xmake").install(package, configs)
  48. end)
  49. on_test(function (package)
  50. assert(package:has_cfuncs("sqlite3_open_v2", {includes = "sqlite3.h"}))
  51. end)