From 2bace703d55a06defb1bd133ac3266f3914b866d Mon Sep 17 00:00:00 2001 From: elsid Date: Mon, 11 Oct 2021 19:34:03 +0200 Subject: [PATCH] Add dependency to SQLite3 This will be required by navmeshtool. --- CI/before_script.android.sh | 1 + CI/before_script.linux.sh | 1 + CI/before_script.msvc.sh | 1 + CI/before_script.osx.sh | 1 + CI/install_debian_deps.sh | 2 +- CMakeLists.txt | 2 ++ extern/CMakeLists.txt | 20 ++++++++++++++++++++ 7 files changed, 27 insertions(+), 1 deletion(-) diff --git a/CI/before_script.android.sh b/CI/before_script.android.sh index 3ea429f1bb..3219f3a4ba 100755 --- a/CI/before_script.android.sh +++ b/CI/before_script.android.sh @@ -24,4 +24,5 @@ cmake \ -DOPENMW_USE_SYSTEM_MYGUI=OFF \ -DOPENMW_USE_SYSTEM_OSG=OFF \ -DOPENMW_USE_SYSTEM_BULLET=OFF \ +-DOPENMW_USE_SYSTEM_SQLITE3=OFF \ .. diff --git a/CI/before_script.linux.sh b/CI/before_script.linux.sh index 5d20fa75ce..b9fed204e3 100755 --- a/CI/before_script.linux.sh +++ b/CI/before_script.linux.sh @@ -40,6 +40,7 @@ if [[ $CI_OPENMW_USE_STATIC_DEPS ]]; then -DOPENMW_USE_SYSTEM_MYGUI=OFF -DOPENMW_USE_SYSTEM_OSG=OFF -DOPENMW_USE_SYSTEM_BULLET=OFF + -DOPENMW_USE_SYSTEM_SQLITE3=OFF ) fi diff --git a/CI/before_script.msvc.sh b/CI/before_script.msvc.sh index 0a6123505e..1341289335 100644 --- a/CI/before_script.msvc.sh +++ b/CI/before_script.msvc.sh @@ -1018,6 +1018,7 @@ echo echo "Setting up OpenMW build..." add_cmake_opts -DOPENMW_MP_BUILD=on add_cmake_opts -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" +add_cmake_opts -DOPENMW_USE_SYSTEM_SQLITE3=OFF if [ ! -z $CI ]; then case $STEP in components ) diff --git a/CI/before_script.osx.sh b/CI/before_script.osx.sh index 265e05b8ee..6d0fe8c99e 100755 --- a/CI/before_script.osx.sh +++ b/CI/before_script.osx.sh @@ -19,6 +19,7 @@ cmake \ -D CMAKE_OSX_DEPLOYMENT_TARGET="10.14" \ -D CMAKE_BUILD_TYPE=RELEASE \ -D OPENMW_OSX_DEPLOYMENT=TRUE \ +-D OPENMW_USE_SYSTEM_SQLITE3=OFF \ -D BUILD_OPENMW=TRUE \ -D BUILD_OPENCS=TRUE \ -D BUILD_ESMTOOL=TRUE \ diff --git a/CI/install_debian_deps.sh b/CI/install_debian_deps.sh index 4b47c937da..a8843207d9 100755 --- a/CI/install_debian_deps.sh +++ b/CI/install_debian_deps.sh @@ -27,7 +27,7 @@ declare -rA GROUPED_DEPS=( # TODO: add librecastnavigation-dev when debian is ready # These dependencies can alternatively be built and linked statically. - [openmw-deps-dynamic]="libmygui-dev libopenscenegraph-dev" + [openmw-deps-dynamic]="libmygui-dev libopenscenegraph-dev libsqlite3-dev" [coverity]="curl" [clang-tidy]="clang-tidy" diff --git a/CMakeLists.txt b/CMakeLists.txt index 2564379847..0451b639e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,6 +149,8 @@ else() endif() option(RECASTNAVIGATION_STATIC "Build recastnavigation static libraries" ${_recastnavigation_static_default}) +option(OPENMW_USE_SYSTEM_SQLITE3 "Use system provided SQLite3 library" ON) + option(OPENMW_UNITY_BUILD "Use fewer compilation units to speed up compile time" FALSE) option(OPENMW_LTO_BUILD "Build OpenMW with Link-Time Optimization (Needs ~2GB of RAM)" OFF) diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt index 6ed0bffa6b..59d3d15176 100644 --- a/extern/CMakeLists.txt +++ b/extern/CMakeLists.txt @@ -188,3 +188,23 @@ if(NOT OPENMW_USE_SYSTEM_RECASTNAVIGATION) ) FetchContent_MakeAvailableExcludeFromAll(recastnavigation) endif() + +if (NOT OPENMW_USE_SYSTEM_SQLITE3) + include(FetchContent) + FetchContent_Declare(sqlite3 + URL https://www.sqlite.org/2021/sqlite-amalgamation-3360000.zip + URL_HASH MD5=c5d360c74111bafae1b704721ff18fe6 + SOURCE_DIR fetched/sqlite3 + ) + FetchContent_MakeAvailableExcludeFromAll(sqlite3) + + add_library(sqlite3 STATIC ${sqlite3_SOURCE_DIR}/sqlite3.c) + target_include_directories(sqlite3 INTERFACE ${sqlite3_SOURCE_DIR}/) + if (UNIX) + target_link_libraries(sqlite3 ${CMAKE_DL_LIBS}) + endif() + add_library(SQLite::SQLite3 ALIAS sqlite3) + + set(SQLite3_INCLUDE_DIR ${sqlite3_SOURCE_DIR}/ PARENT_SCOPE) + set(SQLite3_LIBRARY sqlite3 PARENT_SCOPE) +endif()