mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
remove pcre, add support for bundled pcre2
This commit is contained in:
@@ -1,8 +1,50 @@
|
||||
INCLUDE (CheckCSourceRuns)
|
||||
INCLUDE (ExternalProject)
|
||||
|
||||
SET(WITH_PCRE "auto" CACHE STRING
|
||||
"Which pcre to use (possible values are 'bundled', 'system', or 'auto')")
|
||||
|
||||
MACRO(BUNDLE_PCRE2)
|
||||
SET(dir "${CMAKE_BINARY_DIR}/extra/pcre2")
|
||||
SET(PCRE_INCLUDES ${dir}/src/pcre2-build ${dir}/src/pcre2/src)
|
||||
SET(byproducts)
|
||||
FOREACH(lib pcre2-posix pcre2-8)
|
||||
ADD_LIBRARY(${lib} STATIC IMPORTED GLOBAL)
|
||||
ADD_DEPENDENCIES(${lib} pcre2)
|
||||
IF(WIN32) # same condition as in pcre2 CMakeLists.txt that adds "d"
|
||||
SET(file ${dir}/src/pcre2-build/${CMAKE_CFG_INTDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
SET_TARGET_PROPERTIES(${lib} PROPERTIES IMPORTED_LOCATION_DEBUG ${dir}/src/pcre2-build/Debug/${lib}d.lib)
|
||||
ELSE()
|
||||
SET(file ${dir}/src/pcre2-build/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
SET(byproducts ${byproducts} BUILD_BYPRODUCTS ${file})
|
||||
ENDIF()
|
||||
SET_TARGET_PROPERTIES(${lib} PROPERTIES IMPORTED_LOCATION ${file})
|
||||
ENDFOREACH()
|
||||
FOREACH(v "" "_DEBUG" "_RELWITHDEBINFO" "_RELEASE" "_MINZISEREL")
|
||||
STRING(REPLACE "/WX" "" pcre2_flags${v} "${CMAKE_C_FLAGS${v}}")
|
||||
ENDFOREACH()
|
||||
ExternalProject_Add(
|
||||
pcre2
|
||||
PREFIX "${dir}"
|
||||
URL "https://ftp.pcre.org/pub/pcre/pcre2-10.34.zip"
|
||||
URL_MD5 fdb10dba7f3be43730966bebdd3755ef
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_ARGS
|
||||
"-DPCRE2_BUILD_TESTS=OFF"
|
||||
"-DPCRE2_BUILD_PCRE2GREP=OFF"
|
||||
"-DBUILD_SHARED_LIBS=OFF"
|
||||
"-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
|
||||
"-DCMAKE_C_FLAGS=${pcre2_flags} ${PIC_FLAG}"
|
||||
"-DCMAKE_C_FLAGS_DEBUG=${pcre2_flags_DEBUG}"
|
||||
"-DCMAKE_C_FLAGS_RELWITHDEBINFO=${pcre2_flags_RELWITHDEBINFO}"
|
||||
"-DCMAKE_C_FLAGS_RELEASE=${pcre2_flags_RELEASE}"
|
||||
"-DCMAKE_C_FLAGS_MINSIZEREL=${pcre2_flags_MINSIZEREL}"
|
||||
"-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}"
|
||||
${byproducts}
|
||||
)
|
||||
SET_TARGET_PROPERTIES(pcre2 PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
||||
ENDMACRO()
|
||||
|
||||
MACRO (CHECK_PCRE)
|
||||
IF(WITH_PCRE STREQUAL "system" OR WITH_PCRE STREQUAL "auto")
|
||||
CHECK_LIBRARY_EXISTS(pcre2-8 pcre2_match_8 "" HAVE_PCRE2)
|
||||
@@ -11,11 +53,7 @@ MACRO (CHECK_PCRE)
|
||||
IF (WITH_PCRE STREQUAL "system")
|
||||
MESSAGE(FATAL_ERROR "system pcre2-8 library is not found or unusable")
|
||||
ENDIF()
|
||||
SET(PCRE_INCLUDES ${CMAKE_BINARY_DIR}/pcre2 ${CMAKE_SOURCE_DIR}/pcre2
|
||||
${CMAKE_BINARY_DIR}/pcre2/src ${CMAKE_SOURCE_DIR}/pcre2/src)
|
||||
SET(PCRE2_BUILD_TESTS OFF CACHE BOOL "Disable tests.")
|
||||
SET(PCRE2_BUILD_PCRE2GREP OFF CACHE BOOL "Disable pcre2grep")
|
||||
ADD_SUBDIRECTORY(pcre2)
|
||||
BUNDLE_PCRE2()
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
|
Reference in New Issue
Block a user