mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Search for sqlite3 before vendoring
This commit is contained in:
22
Builds/CMake/deps/Findsqlite.cmake
Normal file
22
Builds/CMake/deps/Findsqlite.cmake
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
find_package (PkgConfig REQUIRED)
|
||||||
|
pkg_search_module (sqlite_PC QUIET sqlite3>=3.26.0)
|
||||||
|
|
||||||
|
if(static)
|
||||||
|
set(SQLITE_LIB libsqlite3.a)
|
||||||
|
else()
|
||||||
|
set(SQLITE_LIB sqlite3.so)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_library (sqlite3
|
||||||
|
NAMES ${SQLITE_LIB}
|
||||||
|
HINTS
|
||||||
|
${sqlite_PC_LIBDIR}
|
||||||
|
${sqlite_PC_LIBRARY_DIRS}
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
|
|
||||||
|
find_path (SQLITE_INCLUDE_DIR
|
||||||
|
NAMES sqlite3.h
|
||||||
|
HINTS
|
||||||
|
${sqlite_PC_INCLUDEDIR}
|
||||||
|
${sqlite_PC_INCLUDEDIRS}
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
@@ -86,7 +86,7 @@ ExternalProject_Add (soci
|
|||||||
>
|
>
|
||||||
TEST_COMMAND ""
|
TEST_COMMAND ""
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
DEPENDS sqlite3
|
DEPENDS sqlite
|
||||||
BUILD_BYPRODUCTS
|
BUILD_BYPRODUCTS
|
||||||
<BINARY_DIR>/lib/${soci_lib_pre}soci_core${soci_lib_post}${ep_lib_suffix}
|
<BINARY_DIR>/lib/${soci_lib_pre}soci_core${soci_lib_post}${ep_lib_suffix}
|
||||||
<BINARY_DIR>/lib/${soci_lib_pre}soci_core${soci_lib_post}_d${ep_lib_suffix}
|
<BINARY_DIR>/lib/${soci_lib_pre}soci_core${soci_lib_post}_d${ep_lib_suffix}
|
||||||
|
|||||||
@@ -2,66 +2,86 @@
|
|||||||
NIH dep: sqlite
|
NIH dep: sqlite
|
||||||
#]===================================================================]
|
#]===================================================================]
|
||||||
|
|
||||||
ExternalProject_Add (sqlite3
|
|
||||||
PREFIX ${nih_cache_path}
|
|
||||||
# sqlite doesn't use git, but it provides versioned tarballs
|
|
||||||
URL https://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip
|
|
||||||
# ^^^ version is apparent in the URL: 3260000 => 3.26.0
|
|
||||||
URL_HASH SHA256=de5dcab133aa339a4cf9e97c40aa6062570086d6085d8f9ad7bc6ddf8a52096e
|
|
||||||
# we wrote a very simple CMake file to build sqlite
|
|
||||||
# so that's what we copy here so that we can build with
|
|
||||||
# CMake. sqlite doesn't generally provided a build system
|
|
||||||
# for the single amalgamation source file.
|
|
||||||
PATCH_COMMAND
|
|
||||||
${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${CMAKE_SOURCE_DIR}/Builds/CMake/CMake_sqlite3.txt
|
|
||||||
<SOURCE_DIR>/CMakeLists.txt
|
|
||||||
CMAKE_ARGS
|
|
||||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
|
||||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
|
||||||
$<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
$<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
|
|
||||||
$<$<BOOL:${MSVC}>:
|
|
||||||
"-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP"
|
|
||||||
"-DCMAKE_C_FLAGS_DEBUG=-MTd"
|
|
||||||
"-DCMAKE_C_FLAGS_RELEASE=-MT"
|
|
||||||
>
|
|
||||||
LOG_BUILD ON
|
|
||||||
LOG_CONFIGURE ON
|
|
||||||
BUILD_COMMAND
|
|
||||||
${CMAKE_COMMAND}
|
|
||||||
--build .
|
|
||||||
--config $<CONFIG>
|
|
||||||
$<$<VERSION_GREATER_EQUAL:${CMAKE_VERSION},3.12>:--parallel ${ep_procs}>
|
|
||||||
$<$<BOOL:${is_multiconfig}>:
|
|
||||||
COMMAND
|
|
||||||
${CMAKE_COMMAND} -E copy
|
|
||||||
<BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}sqlite3$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
|
|
||||||
<BINARY_DIR>
|
|
||||||
>
|
|
||||||
TEST_COMMAND ""
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
BUILD_BYPRODUCTS
|
|
||||||
<BINARY_DIR>/${ep_lib_prefix}sqlite3${ep_lib_suffix}
|
|
||||||
<BINARY_DIR>/${ep_lib_prefix}sqlite3_d${ep_lib_suffix}
|
|
||||||
)
|
|
||||||
ExternalProject_Get_Property (sqlite3 BINARY_DIR)
|
|
||||||
ExternalProject_Get_Property (sqlite3 SOURCE_DIR)
|
|
||||||
if (CMAKE_VERBOSE_MAKEFILE)
|
|
||||||
print_ep_logs (sqlite3)
|
|
||||||
endif ()
|
|
||||||
add_library (sqlite STATIC IMPORTED GLOBAL)
|
add_library (sqlite STATIC IMPORTED GLOBAL)
|
||||||
set_target_properties (sqlite PROPERTIES
|
|
||||||
IMPORTED_LOCATION_DEBUG
|
if (NOT WIN32)
|
||||||
${BINARY_DIR}/${ep_lib_prefix}sqlite3_d${ep_lib_suffix}
|
find_package(sqlite)
|
||||||
IMPORTED_LOCATION_RELEASE
|
endif()
|
||||||
${BINARY_DIR}/${ep_lib_prefix}sqlite3${ep_lib_suffix}
|
|
||||||
INTERFACE_INCLUDE_DIRECTORIES
|
|
||||||
${SOURCE_DIR})
|
if(sqlite3)
|
||||||
add_dependencies (sqlite sqlite3)
|
set_target_properties (sqlite PROPERTIES
|
||||||
|
IMPORTED_LOCATION_DEBUG
|
||||||
|
${sqlite3}
|
||||||
|
IMPORTED_LOCATION_RELEASE
|
||||||
|
${sqlite3}
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
${SQLITE_INCLUDE_DIR})
|
||||||
|
|
||||||
|
else()
|
||||||
|
ExternalProject_Add (sqlite3
|
||||||
|
PREFIX ${nih_cache_path}
|
||||||
|
# sqlite doesn't use git, but it provides versioned tarballs
|
||||||
|
URL https://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip
|
||||||
|
# ^^^ version is apparent in the URL: 3260000 => 3.26.0
|
||||||
|
URL_HASH SHA256=de5dcab133aa339a4cf9e97c40aa6062570086d6085d8f9ad7bc6ddf8a52096e
|
||||||
|
# we wrote a very simple CMake file to build sqlite
|
||||||
|
# so that's what we copy here so that we can build with
|
||||||
|
# CMake. sqlite doesn't generally provided a build system
|
||||||
|
# for the single amalgamation source file.
|
||||||
|
PATCH_COMMAND
|
||||||
|
${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
${CMAKE_SOURCE_DIR}/Builds/CMake/CMake_sqlite3.txt
|
||||||
|
<SOURCE_DIR>/CMakeLists.txt
|
||||||
|
CMAKE_ARGS
|
||||||
|
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||||
|
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||||
|
$<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
|
||||||
|
-DCMAKE_DEBUG_POSTFIX=_d
|
||||||
|
$<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
|
||||||
|
$<$<BOOL:${MSVC}>:
|
||||||
|
"-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP"
|
||||||
|
"-DCMAKE_C_FLAGS_DEBUG=-MTd"
|
||||||
|
"-DCMAKE_C_FLAGS_RELEASE=-MT"
|
||||||
|
>
|
||||||
|
LOG_BUILD ON
|
||||||
|
LOG_CONFIGURE ON
|
||||||
|
BUILD_COMMAND
|
||||||
|
${CMAKE_COMMAND}
|
||||||
|
--build .
|
||||||
|
--config $<CONFIG>
|
||||||
|
$<$<VERSION_GREATER_EQUAL:${CMAKE_VERSION},3.12>:--parallel ${ep_procs}>
|
||||||
|
$<$<BOOL:${is_multiconfig}>:
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -E copy
|
||||||
|
<BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}sqlite3$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
|
||||||
|
<BINARY_DIR>
|
||||||
|
>
|
||||||
|
TEST_COMMAND ""
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
BUILD_BYPRODUCTS
|
||||||
|
<BINARY_DIR>/${ep_lib_prefix}sqlite3${ep_lib_suffix}
|
||||||
|
<BINARY_DIR>/${ep_lib_prefix}sqlite3_d${ep_lib_suffix}
|
||||||
|
)
|
||||||
|
ExternalProject_Get_Property (sqlite3 BINARY_DIR)
|
||||||
|
ExternalProject_Get_Property (sqlite3 SOURCE_DIR)
|
||||||
|
if (CMAKE_VERBOSE_MAKEFILE)
|
||||||
|
print_ep_logs (sqlite3)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
set_target_properties (sqlite PROPERTIES
|
||||||
|
IMPORTED_LOCATION_DEBUG
|
||||||
|
${BINARY_DIR}/${ep_lib_prefix}sqlite3_d${ep_lib_suffix}
|
||||||
|
IMPORTED_LOCATION_RELEASE
|
||||||
|
${BINARY_DIR}/${ep_lib_prefix}sqlite3${ep_lib_suffix}
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
|
${SOURCE_DIR})
|
||||||
|
|
||||||
|
add_dependencies (sqlite sqlite3)
|
||||||
|
exclude_if_included (sqlite3)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_link_libraries (sqlite INTERFACE $<$<NOT:$<BOOL:${MSVC}>>:dl>)
|
target_link_libraries (sqlite INTERFACE $<$<NOT:$<BOOL:${MSVC}>>:dl>)
|
||||||
target_link_libraries (ripple_libs INTERFACE sqlite)
|
target_link_libraries (ripple_libs INTERFACE sqlite)
|
||||||
exclude_if_included (sqlite3)
|
|
||||||
exclude_if_included (sqlite)
|
exclude_if_included (sqlite)
|
||||||
set(sqlite_BINARY_DIR ${BINARY_DIR})
|
set(sqlite_BINARY_DIR ${BINARY_DIR})
|
||||||
|
|||||||
Reference in New Issue
Block a user