build: use system sqlite3 if available
This commit is contained in:
parent
6f9d4c6aa6
commit
5ee2b2cb25
@ -1,15 +1,16 @@
|
|||||||
cmake_minimum_required(VERSION 3.10)
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
project(kgg-dec VERSION 0.6.0 LANGUAGES CXX)
|
project(kgg-dec VERSION 0.6.0 LANGUAGES CXX)
|
||||||
|
|
||||||
option(USE_WIN_SQLITE3 "Use Windows SQLite3 (MSVC Only)" ${MSVC})
|
option(USE_WIN_SQLITE3 "Use Windows SQLite3 (MSVC Only)" ${MSVC})
|
||||||
option(USE_WIN_CRYPTO "Use Windows Crypto API" ${WIN32})
|
option(USE_WIN_CRYPTO "Use Windows Crypto API" ${WIN32})
|
||||||
|
option(USE_SYSTEM_SQLITE3 "Use system SQLite3 (if not using WinSQLite3)" ON)
|
||||||
|
|
||||||
add_subdirectory(third-party/aes)
|
add_subdirectory(third-party/aes)
|
||||||
add_subdirectory(third-party/md5)
|
add_subdirectory(third-party/md5)
|
||||||
|
|
||||||
include(cmake/FindWinSQLite3.cmake)
|
include(cmake/FindWinSQLite3.cmake)
|
||||||
if (NOT WinSQLite3_Found)
|
if (NOT WinSQLite3_Found AND NOT USE_WIN_SQLITE3)
|
||||||
message("including sqlite3 to the build")
|
message("including sqlite3 to the build")
|
||||||
add_subdirectory(third-party/sqlite3)
|
add_subdirectory(third-party/sqlite3)
|
||||||
endif ()
|
endif ()
|
||||||
@ -35,19 +36,27 @@ target_include_directories(kgg-dec
|
|||||||
src/tc_tea
|
src/tc_tea
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Base crypto implementations
|
||||||
target_link_libraries(kgg-dec PRIVATE libaes libmd5)
|
target_link_libraries(kgg-dec PRIVATE libaes libmd5)
|
||||||
if (WIN32)
|
|
||||||
target_link_libraries(kgg-dec PRIVATE shell32 ole32)
|
|
||||||
endif ()
|
|
||||||
if (WinSQLite3_Found)
|
|
||||||
target_link_libraries(kgg-dec PRIVATE WinSQLite3)
|
|
||||||
target_include_directories(kgg-dec PRIVATE ${WindowsKitInclude})
|
|
||||||
else ()
|
|
||||||
target_link_libraries(kgg-dec PRIVATE sqlite3)
|
|
||||||
endif ()
|
|
||||||
target_compile_definitions(kgg-dec PRIVATE NOMINMAX)
|
|
||||||
target_compile_definitions(kgg-dec PRIVATE KGGDEC_PROJECT_VERSION="${PROJECT_VERSION}")
|
|
||||||
|
|
||||||
if (USE_WIN_CRYPTO)
|
if (USE_WIN_CRYPTO)
|
||||||
target_compile_definitions(kgg-dec PRIVATE USE_WIN_CRYPTO=1)
|
target_compile_definitions(kgg-dec PRIVATE USE_WIN_CRYPTO=1)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
# Win32 specific
|
||||||
|
if (WIN32)
|
||||||
|
target_link_libraries(kgg-dec PRIVATE shell32 ole32)
|
||||||
|
target_compile_definitions(kgg-dec PRIVATE NOMINMAX)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# SQLite3
|
||||||
|
if (WinSQLite3_Found)
|
||||||
|
target_link_libraries(kgg-dec PRIVATE WinSQLite3)
|
||||||
|
target_include_directories(kgg-dec PRIVATE ${WindowsKitInclude})
|
||||||
|
elseif(SQLite3_FOUND)
|
||||||
|
target_link_libraries(kgg-dec PRIVATE SQLite::SQLite3)
|
||||||
|
else ()
|
||||||
|
target_link_libraries(kgg-dec PRIVATE sqlite3)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Extra definitions
|
||||||
|
target_compile_definitions(kgg-dec PRIVATE KGGDEC_PROJECT_VERSION="${PROJECT_VERSION}")
|
||||||
|
@ -12,3 +12,10 @@ if (MSVC AND USE_WIN_SQLITE3)
|
|||||||
message("Using WinSQLite3 from Windows SDK (${WindowsKitVersion}).")
|
message("Using WinSQLite3 from Windows SDK (${WindowsKitVersion}).")
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (NOT WinSQLite3_Found AND USE_SYSTEM_SQLITE3)
|
||||||
|
find_package(SQLite3)
|
||||||
|
if (SQLite3_FOUND)
|
||||||
|
message("Using existing SQLite3.")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
Loading…
Reference in New Issue
Block a user