mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
- escript tests: pass $<TARGET_FILE:ecompile|runecl> instead of
${output_bin_dir}/... - with the Visual Studio generator binaries land
in bin/<config>/, so every escript_* test failed locally while Ninja CI
passed
- message(ERROR) is not an error mode; clang-tidy-missing is now FATAL_ERROR
- git_rev target: "BYPRODUCTS=path" was a literal command argument, not the
BYPRODUCTS keyword; pol_revision.h is now properly declared
- source_group_by_folder: read the computed relative_file variable
(relative_path was never set, absolute-path sources got an empty group)
- shard_test_2: the second FIXTURES_REQUIRED overwrote the first; merged
into one property value
- remove dead code: unused DEBUG_VERSION/RELEASE_VERSION defines, unused
msvc_ide variable, no-op link_directories in set_compile_flags,
compiler-predefined _WIN32/_WIN64
- guard add_dependencies(lib* lib*_ext) with if(TARGET ...) consistently
(Antlr/Boost/Efsw/Cppdap already did; the target only exists when the
prebuilt lib is absent)
- replace deprecated TestBigEndian with CMAKE_CXX_BYTE_ORDER; warn that
big-endian is unsupported
- restore Boost unknown-toolset FATAL_ERROR (empty toolset made
bootstrap fail much later with a cryptic error)
- OUTPUT_BINARY_DIR/EXT_DOWNLOAD_DIR are CACHE PATH, not STRING
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
89 lines
2.8 KiB
CMake
89 lines
2.8 KiB
CMake
message("* mariadb")
|
|
|
|
set(MARIADB_REPO "https://github.com/mariadb-corporation/mariadb-connector-c.git")
|
|
set(MARIADB_TAG "v3.4.8")
|
|
|
|
if (${linux})
|
|
find_package(ZLIB QUIET)
|
|
else()
|
|
get_target_property(ZLIB_LIBRARIES libz IMPORTED_LOCATION)
|
|
get_target_property(ZLIB_INCLUDE_DIRS libz INTERFACE_INCLUDE_DIRECTORIES)
|
|
endif()
|
|
|
|
set(MARIADB_SOURCE_DIR "${EXT_DOWNLOAD_DIR}/mariadb-${MARIADB_TAG}")
|
|
set(MARIADB_INSTALL_DIR "${MARIADB_SOURCE_DIR}/install")
|
|
set(MARIADB_ARGS
|
|
-DCMAKE_BUILD_TYPE=Release
|
|
-DCMAKE_INSTALL_PREFIX=${MARIADB_INSTALL_DIR}
|
|
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
|
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
|
-DCMAKE_USER_MAKE_RULES_OVERRIDE_CXX=${CMAKE_CURRENT_LIST_DIR}/cxx_flag_overrides.cmake
|
|
-DCMAKE_USER_MAKE_RULES_OVERRIDE_C=${CMAKE_CURRENT_LIST_DIR}/c_flag_overrides.cmake
|
|
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded # /Mt instead lf /Md
|
|
-DCMAKE_OSX_ARCHITECTURES=${PIPED_OSX_ARCHITECTURES}
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
|
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
|
|
|
|
-DWITH_UNIT_TESTS=OFF
|
|
-DWITH_EXTERNAL_ZLIB=ON
|
|
-DZLIB_FOUND=TRUE
|
|
-DZLIB_LIBRARY=${ZLIB_LIBRARIES}
|
|
-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIRS}
|
|
-DWITH_CURL=OFF
|
|
-DCURL_DIR=${CURL_INSTALL_DIR}/lib/cmake/CURL
|
|
-DCLIENT_PLUGIN_CLIENT_ED25519=STATIC
|
|
-DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=STATIC
|
|
-DCLIENT_PLUGIN_SHA256_PASSWORD=STATIC
|
|
)
|
|
if (${linux})
|
|
include(GNUInstallDirs)
|
|
set(MARIADB_LIB "${MARIADB_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/mariadb/libmariadbclient.a")
|
|
else()
|
|
set(MARIADB_LIB "${MARIADB_INSTALL_DIR}/lib/mariadb/mariadbclient.lib")
|
|
endif()
|
|
|
|
if (NOT EXISTS ${MARIADB_LIB})
|
|
ExternalProject_Add(libmaria_ext
|
|
GIT_REPOSITORY ${MARIADB_REPO}
|
|
GIT_TAG ${MARIADB_TAG}
|
|
GIT_SHALLOW TRUE
|
|
SOURCE_DIR ${MARIADB_SOURCE_DIR}
|
|
PREFIX maria
|
|
LIST_SEPARATOR |
|
|
CMAKE_ARGS ${MARIADB_ARGS}
|
|
BUILD_IN_SOURCE 1
|
|
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release
|
|
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --config Release --target install
|
|
|
|
BUILD_BYPRODUCTS ${MARIADB_LIB}
|
|
LOG_DOWNLOAD 1
|
|
LOG_CONFIGURE 1
|
|
LOG_BUILD 1
|
|
LOG_INSTALL 1
|
|
LOG_OUTPUT_ON_FAILURE 1
|
|
EXCLUDE_FROM_ALL 1
|
|
)
|
|
|
|
ExternalProject_Add_StepDependencies(libmaria_ext configure libz libcurl)
|
|
|
|
else()
|
|
message(" - already built")
|
|
endif()
|
|
|
|
# imported target to add include/lib dir and additional dependencies
|
|
add_library(libsql STATIC IMPORTED)
|
|
set_target_properties(libsql PROPERTIES
|
|
IMPORTED_LOCATION ${MARIADB_LIB}
|
|
IMPORTED_IMPLIB ${MARIADB_LIB}
|
|
INTERFACE_INCLUDE_DIRECTORIES ${MARIADB_INSTALL_DIR}/include
|
|
FOLDER 3rdParty
|
|
)
|
|
file(MAKE_DIRECTORY ${MARIADB_INSTALL_DIR}/include) #directory has to exist during configure
|
|
|
|
if(${windows})
|
|
set_property(TARGET libsql
|
|
PROPERTY INTERFACE_LINK_LIBRARIES secur32 crypt32 bcrypt)
|
|
endif()
|
|
if(TARGET libmaria_ext)
|
|
add_dependencies(libsql libmaria_ext)
|
|
endif()
|