1 cmake_minimum_required(VERSION 3.10)
4 find_package(OpenSSL REQUIRED)
6 include_directories(. ${OPENSSL_INCLUDE_DIR})
9 set(API "-DSQLITE_API=__attribute__((visibility(\"default\")))")
10 elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
11 set(API "-DSQLITE_API=__declspec(dllexport)")
13 message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}")
16 set(API "-DSQLITE_API=extern")
18 add_library(sqlcipher sqlite3.c)
20 target_compile_definitions(
23 $<$<CONFIG:Debug>:SQLITE_DEBUG>
26 -DSQLITE_ENABLE_UNLOCK_NOTIFY
27 -DSQLITE_ENABLE_COLUMN_METADATA
33 add_compile_definitions(SQLITE_ENABLE_GEOPOLY)
37 add_compile_definitions(SQLITE_ENABLE_JSON1)
40 target_include_directories(sqlcipher INTERFACE $<INSTALL_INTERFACE:include>)
42 find_package(Threads REQUIRED)
43 target_link_libraries(sqlcipher PRIVATE Threads::Threads ${CMAKE_DL_LIBS})
46 target_link_libraries(sqlcipher PRIVATE ${OPENSSL_CRYPTO_LIBRARY})
48 if(CMAKE_SYSTEM_NAME MATCHES "WindowsStore")
49 target_compile_definitions(sqlcipher PRIVATE -DSQLITE_OS_WINRT=1)
52 if(NOT SQLITE3_SKIP_TOOLS)
53 add_executable(sqlcipher-bin shell.c)
54 target_link_libraries(sqlcipher-bin PRIVATE sqlcipher)
55 install(TARGETS sqlcipher-bin sqlcipher
56 RUNTIME DESTINATION tools/sqlcipher
57 LIBRARY DESTINATION lib
58 ARCHIVE DESTINATION lib
64 EXPORT sqlcipher-targets
65 RUNTIME DESTINATION bin
66 LIBRARY DESTINATION lib
67 ARCHIVE DESTINATION lib
70 install(FILES sqlite3.h sqlite3ext.h DESTINATION include/sqlcipher CONFIGURATIONS Release)
71 install(EXPORT sqlcipher-targets NAMESPACE sqlcipher:: FILE sqlcipher-targets.cmake DESTINATION share/sqlcipher)