mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-25 17:07:49 +08:00
86e3ce7d29
This PR adds a configuration option that allows you to enable snapshots of SQLite3. https://sqlite.org/c3ref/snapshot.html The main use case is handling in WAL mode. Previously, SQLite3 in vcpkg did not support database snapshot handling. This PR will extend the functionality of SQLite3 by supporting it. - [x] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md). - [x] SHA512s are updated for each updated download. - [x] The "supports" clause reflects platforms that may be fixed by this new version. - [x] Any fixed [CI baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt) entries are removed from that file. - [x] Any patches that are no longer applied are deleted from the port's directory. - [x] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result. - [x] Only one version is added to each modified port's versions file.
100 lines
3.5 KiB
CMake
100 lines
3.5 KiB
CMake
string(REGEX REPLACE "^([0-9]+)[.]([0-9]+)[.]([0-9]+)[.]([0-9]+)" "\\1,0\\2,0\\3,0\\4," SQLITE_VERSION "${VERSION}.0")
|
|
string(REGEX REPLACE "^([0-9]+),0*([0-9][0-9]),0*([0-9][0-9]),0*([0-9][0-9])," "\\1\\2\\3\\4" SQLITE_VERSION "${SQLITE_VERSION}")
|
|
|
|
vcpkg_download_distfile(ARCHIVE
|
|
URLS "https://sqlite.org/2024/sqlite-autoconf-${SQLITE_VERSION}.tar.gz"
|
|
FILENAME "sqlite-autoconf-${SQLITE_VERSION}.zip"
|
|
SHA512 c6bd4eaa67cada28528d1ac31aec1662c0a11048247a1bb148c1842fb0252934e2096843b56fea94bfb96c4eaaa598ec70ac31f2a5e910388f24f152b9fc4211
|
|
)
|
|
|
|
vcpkg_extract_source_archive(
|
|
SOURCE_PATH
|
|
ARCHIVE "${ARCHIVE}"
|
|
PATCHES
|
|
fix-arm-uwp.patch
|
|
add-config-include.patch
|
|
)
|
|
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
|
set(SQLITE_API "__declspec(dllimport)")
|
|
else()
|
|
set(SQLITE_API "__attribute__((visibility(\"default\")))")
|
|
endif()
|
|
else()
|
|
set(SQLITE_API "")
|
|
endif()
|
|
|
|
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
|
FEATURES
|
|
fts5 SQLITE_ENABLE_FTS5
|
|
math SQLITE_ENABLE_MATH_FUNCTIONS
|
|
zlib WITH_ZLIB
|
|
INVERTED_FEATURES
|
|
tool SQLITE3_SKIP_TOOLS
|
|
)
|
|
vcpkg_check_features(OUT_FEATURE_OPTIONS none # only using the script-mode side-effects
|
|
FEATURES
|
|
dbstat SQLITE_ENABLE_DBSTAT_VTAB
|
|
fts3 SQLITE_ENABLE_FTS3
|
|
fts4 SQLITE_ENABLE_FTS4
|
|
memsys3 SQLITE_ENABLE_MEMSYS3
|
|
memsys5 SQLITE_ENABLE_MEMSYS5
|
|
limit SQLITE_ENABLE_UPDATE_DELETE_LIMIT
|
|
rtree SQLITE_ENABLE_RTREE
|
|
session SQLITE_ENABLE_SESSION
|
|
session SQLITE_ENABLE_PREUPDATE_HOOK
|
|
snapshot SQLITE_ENABLE_SNAPSHOT
|
|
omit-load-extension SQLITE_OMIT_LOAD_EXTENSION
|
|
geopoly SQLITE_ENABLE_GEOPOLY
|
|
soundex SQLITE_SOUNDEX
|
|
INVERTED_FEATURES
|
|
json1 SQLITE_OMIT_JSON
|
|
)
|
|
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
|
set(SQLITE_OS_WIN "1")
|
|
if(VCPKG_TARGET_IS_UWP)
|
|
set(SQLITE_OS_WINRT "1")
|
|
endif()
|
|
else()
|
|
set(SQLITE_OS_UNIX "1")
|
|
endif()
|
|
|
|
file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
|
|
file(COPY "${CMAKE_CURRENT_LIST_DIR}/sqlite3.pc.in" DESTINATION "${SOURCE_PATH}")
|
|
configure_file("${CMAKE_CURRENT_LIST_DIR}/sqlite3-vcpkg-config.h.in" "${SOURCE_PATH}/sqlite3-vcpkg-config.h" @ONLY)
|
|
|
|
vcpkg_cmake_configure(
|
|
SOURCE_PATH "${SOURCE_PATH}"
|
|
OPTIONS
|
|
${FEATURE_OPTIONS}
|
|
-DPKGCONFIG_VERSION=${VERSION}
|
|
OPTIONS_DEBUG
|
|
-DSQLITE3_SKIP_TOOLS=ON
|
|
MAYBE_UNUSED_VARIABLES
|
|
SQLITE_ENABLE_FTS5
|
|
SQLITE_ENABLE_MATH_FUNCTIONS
|
|
)
|
|
|
|
vcpkg_cmake_install()
|
|
vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT} CONFIG_PATH share/unofficial-${PORT})
|
|
|
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
|
|
|
if("tool" IN_LIST FEATURES)
|
|
vcpkg_copy_tools(TOOL_NAMES sqlite3 DESTINATION "${CURRENT_PACKAGES_DIR}/tools" AUTO_CLEAN)
|
|
endif()
|
|
|
|
configure_file(
|
|
"${CMAKE_CURRENT_LIST_DIR}/sqlite3-config.in.cmake"
|
|
"${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-sqlite3-config.cmake"
|
|
@ONLY
|
|
)
|
|
|
|
vcpkg_fixup_pkgconfig()
|
|
vcpkg_copy_pdbs()
|
|
|
|
file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "SQLite is in the Public Domain.\nhttp://www.sqlite.org/copyright.html\n")
|
|
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|