polserver/cmake/SQLiteCpp.cmake

67 lines
2.3 KiB
CMake
Raw Permalink Normal View History

2024-07-19 09:13:59 +02:00
message("* libsqlitecpp")
set (SQLITECPP_REPOSITORY "https://github.com/SRombauts/SQLiteCpp.git")
set (SQLITECPP_VERSION_REF "3.3.1")
set (SQLITECPP_SOURCE_DIR "${POL_EXT_LIB_DIR}/SQLiteCpp-${SQLITECPP_VERSION_REF}")
set (SQLITECPP_INSTALL_DIR "${SQLITECPP_SOURCE_DIR}/build")
if (${windows})
set (SQLITECPP_LIB_1 "${SQLITECPP_INSTALL_DIR}/lib/SQLiteCpp.lib" )
set (SQLITECPP_LIB_2 "${SQLITECPP_INSTALL_DIR}/lib/sqlite3.lib" )
else()
set (SQLITECPP_LIB_1 "${SQLITECPP_INSTALL_DIR}/lib/libSQLiteCpp.a" )
set (SQLITECPP_LIB_2 "${SQLITECPP_INSTALL_DIR}/lib/libsqlite3.a" )
endif()
if (${windows})
set(SQLITECPP_FLAGS -DCMAKE_CXX_FLAGS_RELEASE="/MT" -DCMAKE_C_FLAGS_RELEASE="/MT")
endif()
set(SQLITECPP_ARGS ${SQLITECPP_FLAGS}
-DCMAKE_INSTALL_PREFIX=${SQLITECPP_INSTALL_DIR}
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_OSX_ARCHITECTURES=${PIPED_OSX_ARCHITECTURES}
-DSQLITECPP_INTERNAL_SQLITE=ON
)
if(NOT EXISTS ${SQLITECPP_LIB_1} OR NOT EXISTS ${SQLITECPP_LIB_2})
ExternalProject_Add(libsqlitecpp_ext
GIT_REPOSITORY ${SQLITECPP_REPOSITORY}
GIT_TAG ${SQLITECPP_VERSION_REF}
GIT_SHALLOW TRUE
2024-07-19 11:44:29 +02:00
GIT_CONFIG core.autocrlf=false
2024-07-19 09:13:59 +02:00
PREFIX SQLiteCpp
LIST_SEPARATOR |
CMAKE_ARGS ${SQLITECPP_ARGS}
SOURCE_DIR "${SQLITECPP_SOURCE_DIR}"
BUILD_IN_SOURCE 1
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --config Release --target install
BUILD_BYPRODUCTS ${SQLITECPP_LIB_1} ${SQLITECPP_LIB_2}
EXCLUDE_FROM_ALL 1
)
else()
message(" - already built")
endif()
add_library(libsqlitecpp1 STATIC IMPORTED)
set_target_properties(libsqlitecpp1 PROPERTIES
IMPORTED_LOCATION ${SQLITECPP_LIB_1}
IMPORTED_IMPLIB ${SQLITECPP_LIB_1}
INTERFACE_INCLUDE_DIRECTORIES ${SQLITECPP_INSTALL_DIR}/include
FOLDER 3rdParty
)
add_library(libsqlitecpp2 STATIC IMPORTED)
set_target_properties(libsqlitecpp2 PROPERTIES
IMPORTED_LOCATION ${SQLITECPP_LIB_2}
IMPORTED_IMPLIB ${SQLITECPP_LIB_2}
FOLDER 3rdParty
)
if(NOT EXISTS ${SQLITECPP_LIB_1})
file(MAKE_DIRECTORY ${SQLITECPP_INSTALL_DIR}/include) #directory has to exist during configure
add_dependencies(libsqlitecpp1 libsqlitecpp_ext)
add_dependencies(libsqlitecpp2 libsqlitecpp_ext)
endif()