xmake.lua 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. add_rules("mode.debug", "mode.release")
  2. if not is_plat("iphoneos") then
  3. add_requires("openssl3")
  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("openssl3")
  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_EXTRA_INIT=sqlcipher_extra_init")
  45. add_defines("SQLITE_EXTRA_SHUTDOWN=sqlcipher_extra_shutdown")
  46. add_defines("SQLITE_THREADSAFE=$(threadsafe)")
  47. add_defines("SQLITE_TEMP_STORE=$(temp_store)")
  48. add_defines("NDEBUG", "SQLITE_ENABLE_EXPLAIN_COMMENTS", "SQLITE_ENABLE_DBPAGE_VTAB", "SQLITE_ENABLE_STMTVTAB", "SQLITE_ENABLE_DBSTAT_VTAB", "SQLITE_ENABLE_MATH_FUNCTIONS")
  49. add_files("sqlite3.c")
  50. add_headerfiles("sqlite3*.h)")