xmake.lua 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. add_rules("mode.debug", "mode.release")
  2. if not is_plat("iphoneos") then
  3. add_requires("openssl")
  4. end
  5. option("encrypt")
  6. set_default(true)
  7. option_end()
  8. option("threadsafe")
  9. set_default("2")
  10. set_values("0", "1", "2")
  11. option_end()
  12. option("temp_store")
  13. set_default("2")
  14. set_values("0", "1", "2", "3")
  15. option_end()
  16. target("sqlcipher")
  17. set_kind("$(kind)")
  18. if has_config("encrypt") then
  19. add_defines("SQLITE_HAS_CODEC")
  20. end
  21. if is_plat("iphoneos") then
  22. add_frameworks("Security")
  23. add_defines("SQLCIPHER_CRYPTO_CC")
  24. else
  25. add_packages("openssl")
  26. add_defines("SQLCIPHER_CRYPTO_OPENSSL")
  27. end
  28. if is_plat("windows") then
  29. add_defines("SQLITE_OS_WIN=1")
  30. if is_kind("shared") then
  31. add_defines("SQLITE_API=__declspec(dllexport)")
  32. end
  33. else
  34. add_defines("SQLITE_OS_UNIX=1")
  35. end
  36. if is_plat("macosx", "linux", "cross") then
  37. add_defines("SQLITE_ENABLE_MATH_FUNCTIONS")
  38. add_syslinks("pthread", "dl", "m")
  39. end
  40. if is_plat("android") then
  41. add_defines("SQLITE_ENABLE_MATH_FUNCTIONS", "SQLITE_HAVE_ZLIB")
  42. add_syslinks("dl", "m", "z")
  43. end
  44. add_defines("SQLITE_THREADSAFE=$(threadsafe)")
  45. add_defines("SQLITE_TEMP_STORE=$(temp_store)")
  46. add_defines("NDEBUG", "SQLITE_ENABLE_EXPLAIN_COMMENTS", "SQLITE_ENABLE_DBPAGE_VTAB", "SQLITE_ENABLE_STMTVTAB", "SQLITE_ENABLE_DBSTAT_VTAB", "SQLITE_ENABLE_MATH_FUNCTIONS")
  47. add_files("sqlite3.c")
  48. add_headerfiles("sqlite3*.h)")