diff --git a/CMakeLists.txt b/CMakeLists.txt index 7febf33..f7d1e32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,8 +103,8 @@ PROJECT(PCRE2 C) # Increased minimum to 2.8.5 to support GNUInstallDirs. -# Increased minimum to 3.0.0 because older than 2.8.12 is deprecated. -CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0) +# Increased minimum to 3.1 to support imported targets. +CMAKE_MINIMUM_REQUIRED(VERSION 3.1) # Set policy CMP0026 to avoid warnings for the use of LOCATION in # GET_TARGET_PROPERTY. This should no longer be required. @@ -382,7 +382,13 @@ IF(PCRE2_SUPPORT_UNICODE) ENDIF(PCRE2_SUPPORT_UNICODE) IF(PCRE2_SUPPORT_JIT) - SET(SUPPORT_JIT 1) + SET(SUPPORT_JIT 1) + IF(UNIX) + FIND_PACKAGE(Threads REQUIRED) + IF(CMAKE_USE_PTHREADS_INIT) + SET(REQUIRE_PTHREAD 1) + ENDIF(CMAKE_USE_PTHREADS_INIT) + ENDIF(UNIX) ENDIF(PCRE2_SUPPORT_JIT) IF(PCRE2_SUPPORT_JIT_SEALLOC) @@ -697,6 +703,9 @@ IF(PCRE2_BUILD_PCRE2_8) VERSION ${LIBPCRE2_8_VERSION} SOVERSION ${LIBPCRE2_8_SOVERSION}) TARGET_COMPILE_DEFINITIONS(pcre2-8-static PUBLIC PCRE2_STATIC) + IF(REQUIRE_PTHREAD) + TARGET_LINK_LIBRARIES(pcre2-8-static Threads::Threads) + ENDIF(REQUIRE_PTHREAD) SET(targets ${targets} pcre2-8-static) ADD_LIBRARY(pcre2-posix-static STATIC ${PCRE2POSIX_HEADERS} ${PCRE2POSIX_SOURCES}) SET_TARGET_PROPERTIES(pcre2-posix-static PROPERTIES @@ -730,6 +739,9 @@ IF(PCRE2_BUILD_PCRE2_8) VERSION ${LIBPCRE2_8_VERSION} SOVERSION ${LIBPCRE2_8_SOVERSION} OUTPUT_NAME pcre2-8) + IF(REQUIRE_PTHREAD) + TARGET_LINK_LIBRARIES(pcre2-8-shared Threads::Threads) + ENDIF(REQUIRE_PTHREAD) SET(targets ${targets} pcre2-8-shared) ADD_LIBRARY(pcre2-posix-shared SHARED ${PCRE2POSIX_HEADERS} ${PCRE2POSIX_SOURCES}) SET_TARGET_PROPERTIES(pcre2-posix-shared PROPERTIES @@ -773,6 +785,9 @@ IF(PCRE2_BUILD_PCRE2_16) VERSION ${LIBPCRE2_16_VERSION} SOVERSION ${LIBPCRE2_16_SOVERSION}) TARGET_COMPILE_DEFINITIONS(pcre2-16-static PUBLIC PCRE2_STATIC) + IF(REQUIRE_PTHREAD) + TARGET_LINK_LIBRARIES(pcre2-16-static Threads::Threads) + ENDIF(REQUIRE_PTHREAD) SET(targets ${targets} pcre2-16-static) IF(MSVC) @@ -794,6 +809,9 @@ IF(PCRE2_BUILD_PCRE2_16) VERSION ${LIBPCRE2_16_VERSION} SOVERSION ${LIBPCRE2_16_SOVERSION} OUTPUT_NAME pcre2-16) + IF(REQUIRE_PTHREAD) + TARGET_LINK_LIBRARIES(pcre2-16-shared Threads::Threads) + ENDIF(REQUIRE_PTHREAD) SET(targets ${targets} pcre2-16-shared) IF(MINGW) @@ -825,6 +843,9 @@ IF(PCRE2_BUILD_PCRE2_32) VERSION ${LIBPCRE2_32_VERSION} SOVERSION ${LIBPCRE2_32_SOVERSION}) TARGET_COMPILE_DEFINITIONS(pcre2-32-static PUBLIC PCRE2_STATIC) + IF(REQUIRE_PTHREAD) + TARGET_LINK_LIBRARIES(pcre2-32-static Threads::Threads) + ENDIF(REQUIRE_PTHREAD) SET(targets ${targets} pcre2-32-static) IF(MSVC) @@ -846,6 +867,9 @@ IF(PCRE2_BUILD_PCRE2_32) VERSION ${LIBPCRE2_32_VERSION} SOVERSION ${LIBPCRE2_32_SOVERSION} OUTPUT_NAME pcre2-32) + IF(REQUIRE_PTHREAD) + TARGET_LINK_LIBRARIES(pcre2-32-shared Threads::Threads) + ENDIF(REQUIRE_PTHREAD) SET(targets ${targets} pcre2-32-shared) IF(MINGW)