Skip to content

Commit 7cd2a8c

Browse files
committed
cmake: add pthread dependency
Fixes: PCRE2Project#103
1 parent d0c7544 commit 7cd2a8c

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

CMakeLists.txt

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@
103103
PROJECT(PCRE2 C)
104104

105105
# Increased minimum to 2.8.5 to support GNUInstallDirs.
106-
# Increased minimum to 3.0.0 because older than 2.8.12 is deprecated.
107-
CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
106+
# Increased minimum to 3.1 to support imported targets.
107+
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
108108

109109
# Set policy CMP0026 to avoid warnings for the use of LOCATION in
110110
# GET_TARGET_PROPERTY. This should no longer be required.
@@ -382,7 +382,13 @@ IF(PCRE2_SUPPORT_UNICODE)
382382
ENDIF(PCRE2_SUPPORT_UNICODE)
383383

384384
IF(PCRE2_SUPPORT_JIT)
385-
SET(SUPPORT_JIT 1)
385+
SET(SUPPORT_JIT 1)
386+
IF(UNIX)
387+
FIND_PACKAGE(Threads REQUIRED)
388+
IF(CMAKE_USE_PTHREADS_INIT)
389+
SET(REQUIRE_PTHREAD 1)
390+
ENDIF(CMAKE_USE_PTHREADS_INIT)
391+
ENDIF(UNIX)
386392
ENDIF(PCRE2_SUPPORT_JIT)
387393

388394
IF(PCRE2_SUPPORT_JIT_SEALLOC)
@@ -697,6 +703,9 @@ IF(PCRE2_BUILD_PCRE2_8)
697703
VERSION ${LIBPCRE2_8_VERSION}
698704
SOVERSION ${LIBPCRE2_8_SOVERSION})
699705
TARGET_COMPILE_DEFINITIONS(pcre2-8-static PUBLIC PCRE2_STATIC)
706+
IF(REQUIRE_PTHREAD)
707+
TARGET_LINK_LIBRARIES(pcre2-8-static Threads::Threads)
708+
ENDIF(REQUIRE_PTHREAD)
700709
SET(targets ${targets} pcre2-8-static)
701710
ADD_LIBRARY(pcre2-posix-static STATIC ${PCRE2POSIX_HEADERS} ${PCRE2POSIX_SOURCES})
702711
SET_TARGET_PROPERTIES(pcre2-posix-static PROPERTIES
@@ -730,6 +739,9 @@ IF(PCRE2_BUILD_PCRE2_8)
730739
VERSION ${LIBPCRE2_8_VERSION}
731740
SOVERSION ${LIBPCRE2_8_SOVERSION}
732741
OUTPUT_NAME pcre2-8)
742+
IF(REQUIRE_PTHREAD)
743+
TARGET_LINK_LIBRARIES(pcre2-8-shared Threads::Threads)
744+
ENDIF(REQUIRE_PTHREAD)
733745
SET(targets ${targets} pcre2-8-shared)
734746
ADD_LIBRARY(pcre2-posix-shared SHARED ${PCRE2POSIX_HEADERS} ${PCRE2POSIX_SOURCES})
735747
SET_TARGET_PROPERTIES(pcre2-posix-shared PROPERTIES
@@ -773,6 +785,9 @@ IF(PCRE2_BUILD_PCRE2_16)
773785
VERSION ${LIBPCRE2_16_VERSION}
774786
SOVERSION ${LIBPCRE2_16_SOVERSION})
775787
TARGET_COMPILE_DEFINITIONS(pcre2-16-static PUBLIC PCRE2_STATIC)
788+
IF(REQUIRE_PTHREAD)
789+
TARGET_LINK_LIBRARIES(pcre2-16-static Threads::Threads)
790+
ENDIF(REQUIRE_PTHREAD)
776791
SET(targets ${targets} pcre2-16-static)
777792

778793
IF(MSVC)
@@ -794,6 +809,9 @@ IF(PCRE2_BUILD_PCRE2_16)
794809
VERSION ${LIBPCRE2_16_VERSION}
795810
SOVERSION ${LIBPCRE2_16_SOVERSION}
796811
OUTPUT_NAME pcre2-16)
812+
IF(REQUIRE_PTHREAD)
813+
TARGET_LINK_LIBRARIES(pcre2-16-shared Threads::Threads)
814+
ENDIF(REQUIRE_PTHREAD)
797815
SET(targets ${targets} pcre2-16-shared)
798816

799817
IF(MINGW)
@@ -825,6 +843,9 @@ IF(PCRE2_BUILD_PCRE2_32)
825843
VERSION ${LIBPCRE2_32_VERSION}
826844
SOVERSION ${LIBPCRE2_32_SOVERSION})
827845
TARGET_COMPILE_DEFINITIONS(pcre2-32-static PUBLIC PCRE2_STATIC)
846+
IF(REQUIRE_PTHREAD)
847+
TARGET_LINK_LIBRARIES(pcre2-32-static Threads::Threads)
848+
ENDIF(REQUIRE_PTHREAD)
828849
SET(targets ${targets} pcre2-32-static)
829850

830851
IF(MSVC)
@@ -846,6 +867,9 @@ IF(PCRE2_BUILD_PCRE2_32)
846867
VERSION ${LIBPCRE2_32_VERSION}
847868
SOVERSION ${LIBPCRE2_32_SOVERSION}
848869
OUTPUT_NAME pcre2-32)
870+
IF(REQUIRE_PTHREAD)
871+
TARGET_LINK_LIBRARIES(pcre2-32-shared Threads::Threads)
872+
ENDIF(REQUIRE_PTHREAD)
849873
SET(targets ${targets} pcre2-32-shared)
850874

851875
IF(MINGW)

0 commit comments

Comments
 (0)