diff --git a/cmake/icu.cmake b/cmake/icu.cmake index fde3a75..9f694b9 100644 --- a/cmake/icu.cmake +++ b/cmake/icu.cmake @@ -38,49 +38,11 @@ # install_root is either 'system' or is assumed to be a path. # MACRO (FIND_ICU install_root) - IF("${install_root}" STREQUAL "system") - SET(EXTRA_FIND_LIB_ARGS) - SET(EXTRA_FIND_INC_ARGS) - ELSE() - SET(EXTRA_FIND_LIB_ARGS HINTS "${install_root}" - PATH_SUFFIXES "lib" "lib64" NO_DEFAULT_PATH) - SET(EXTRA_FIND_INC_ARGS HINTS "${install_root}" - PATH_SUFFIXES "include" NO_DEFAULT_PATH) - ENDIF() - - FIND_PATH(ICU_INCLUDE_DIR NAMES unicode/regex.h ${EXTRA_FIND_INC_ARGS}) - IF (NOT ICU_INCLUDE_DIR) - MESSAGE(FATAL_ERROR "Cannot find ICU regular expression headers") - ENDIF() - - IF(WIN32) - SET(ICU_LIBS icuuc icuio icudt icuin) - ELSE() - SET(ICU_LIBS icuuc icuio icudata icui18n) - ENDIF() - - SET(ICU_SYSTEM_LIBRARIES) - FOREACH(ICU_LIB ${ICU_LIBS}) - UNSET(ICU_LIB_PATH CACHE) - FIND_LIBRARY(ICU_LIB_PATH NAMES ${ICU_LIB} ${EXTRA_FIND_LIB_ARGS}) - IF(NOT ICU_LIB_PATH) - MESSAGE(FATAL_ERROR "Cannot find the ICU library ${ICU_LIB}") - ENDIF() - LIST(APPEND ICU_SYSTEM_LIBRARIES ${ICU_LIB_PATH}) - ENDFOREACH() - - # To do: If we include the path in ICU_INCLUDE_DIR, it leads to GUnit - # picking up the wrong regex.h header. And it looks like we don't need it; - # at least on Linux, the header gets installed in an OS path anyway. - IF(NOT "${install_root}" STREQUAL "system") - SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR}) - ENDIF() - - SET(ICU_LIBRARIES ${ICU_SYSTEM_LIBRARIES}) - - # Needed for version information. - SET(ICU_COMMON_DIR ${ICU_INCLUDE_DIR}) + find_package(ICU REQUIRED COMPONENTS uc io dt in) + set(ICU_SYSTEM_LIBRARIES ICU::uc ICU::io ICU::dt ICU::in) + set(ICU_COMMON_DIR ${ICU_INCLUDE_DIR}) + SET(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR}) ENDMACRO() MACRO (MYSQL_USE_BUNDLED_ICU) diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index 3fa58da..88b53e7 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -350,12 +350,7 @@ MACRO(MERGE_CONVENIENCE_LIBRARIES) # On Windows, ssleay32.lib/libeay32.lib or libssl.lib/libcrypto.lib # must be merged into mysqlclient.lib IF(WIN32 AND ${TARGET} STREQUAL "mysqlclient") - SET(LINKER_EXTRA_FLAGS "") - FOREACH(LIB ${SSL_LIBRARIES}) - STRING_APPEND(LINKER_EXTRA_FLAGS " ${LIB}") - ENDFOREACH() - SET_TARGET_PROPERTIES(${TARGET} - PROPERTIES STATIC_LIBRARY_FLAGS "${LINKER_EXTRA_FLAGS}") + TARGET_LINK_LIBRARIES(${TARGET} PRIVATE ${SSL_LIBRARIES}) ENDIF() IF(OSLIBS) diff --git a/cmake/lz4.cmake b/cmake/lz4.cmake index 9aad130..68cbaba 100644 --- a/cmake/lz4.cmake +++ b/cmake/lz4.cmake @@ -25,7 +25,7 @@ MACRO (FIND_SYSTEM_LZ4) FIND_PATH(PATH_TO_LZ4 NAMES lz4frame.h) - FIND_LIBRARY(LZ4_SYSTEM_LIBRARY NAMES lz4) + FIND_LIBRARY(LZ4_SYSTEM_LIBRARY NAMES lz4d lz4) IF (PATH_TO_LZ4 AND LZ4_SYSTEM_LIBRARY) SET(SYSTEM_LZ4_FOUND 1) INCLUDE_DIRECTORIES(SYSTEM ${PATH_TO_LZ4}) diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake index 52feade..1e71bd7 100644 --- a/cmake/ssl.cmake +++ b/cmake/ssl.cmake @@ -93,7 +93,20 @@ ENDMACRO() # Provides the following configure options: # WITH_SSL=[yes|system|] MACRO (MYSQL_CHECK_SSL) + find_package(OpenSSL REQUIRED) + set(OPENSSL_LIBRARY OpenSSL::SSL CACHE STRING "") + set(CRYPTO_LIBRARY OpenSSL::Crypto CACHE STRING "") + FIND_PROGRAM(OPENSSL_EXECUTABLE openssl + DOC "path to the openssl executable") + SET(SSL_DEFINES "-DHAVE_OPENSSL") + set(SSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto) + if(NOT WIN32) + find_package(Threads REQUIRED) + list(APPEND SSL_LIBRARIES Threads::Threads) + endif() +ENDMACRO() +MACRO (MYSQL_CHECK_SSL_OLD) IF(NOT WITH_SSL) SET(WITH_SSL "system" CACHE STRING ${WITH_SSL_DOC_STRING} FORCE) ENDIF() diff --git a/cmake/zlib.cmake b/cmake/zlib.cmake index 26c56fe..65bebb4 100644 --- a/cmake/zlib.cmake +++ b/cmake/zlib.cmake @@ -51,28 +51,7 @@ MACRO (MYSQL_CHECK_ZLIB_WITH_COMPRESS) IF(WITH_ZLIB STREQUAL "bundled") MYSQL_USE_BUNDLED_ZLIB() ELSE() - SET(ZLIB_FIND_QUIETLY TRUE) - INCLUDE(FindZLIB) - IF(ZLIB_FOUND) - INCLUDE(CheckFunctionExists) - SET(SAVE_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) - SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} z) - CHECK_FUNCTION_EXISTS(crc32 HAVE_CRC32) - CHECK_FUNCTION_EXISTS(compressBound HAVE_COMPRESSBOUND) - CHECK_FUNCTION_EXISTS(deflateBound HAVE_DEFLATEBOUND) - SET(CMAKE_REQUIRED_LIBRARIES ${SAVE_CMAKE_REQUIRED_LIBRARIES}) - IF(HAVE_CRC32 AND HAVE_COMPRESSBOUND AND HAVE_DEFLATEBOUND) - SET(ZLIB_LIBRARY ${ZLIB_LIBRARIES} CACHE INTERNAL "System zlib library") - SET(WITH_ZLIB "system" CACHE STRING - "Which zlib to use (possible values are 'bundled' or 'system')") - SET(ZLIB_SOURCES "") - ELSE() - SET(ZLIB_FOUND FALSE CACHE INTERNAL "Zlib found but not usable") - MESSAGE(STATUS "system zlib found but not usable") - ENDIF() - ENDIF() - IF(NOT ZLIB_FOUND) - MYSQL_USE_BUNDLED_ZLIB() - ENDIF() + find_package(ZLIB REQUIRED) + SET(ZLIB_LIBRARY ZLIB::ZLIB CACHE INTERNAL "System zlib library") ENDIF() ENDMACRO()