Skip to content

Commit 604e281

Browse files
authored
Merge pull request libgit2#5063 from pks-t/pks/cmake-regcomp-fix
cmake: correctly detect if system provides `regcomp`
2 parents 957940b + ee3d71f commit 604e281

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/CMakeLists.txt

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,23 @@ IF (ENABLE_TRACE STREQUAL "ON")
4848
ENDIF()
4949
ADD_FEATURE_INFO(tracing GIT_TRACE "tracing support")
5050

51+
# Use `regcomp_l` if available
5152
CHECK_SYMBOL_EXISTS(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L)
5253
IF (HAVE_REGCOMP_L)
5354
SET(GIT_USE_REGCOMP_L 1)
5455
ENDIF ()
5556

57+
# Otherwise, we either want to use system's `regcomp` or our
58+
# bundled regcomp code, if system doesn't provide `regcomp`.
59+
IF(NOT HAVE_REGCOMP_L)
60+
CHECK_FUNCTION_EXISTS(regcomp HAVE_REGCOMP)
61+
IF(NOT HAVE_REGCOMP)
62+
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/regex" "${libgit2_BINARY_DIR}/deps/regex")
63+
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/regex")
64+
LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:regex>)
65+
ENDIF()
66+
ENDIF()
67+
5668
CHECK_FUNCTION_EXISTS(futimens HAVE_FUTIMENS)
5769
IF (HAVE_FUTIMENS)
5870
SET(GIT_USE_FUTIMENS 1)
@@ -117,7 +129,7 @@ IF (WIN32 AND WINHTTP)
117129
IF (MINGW)
118130
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/winhttp" "${libgit2_BINARY_DIR}/deps/winhttp")
119131
LIST(APPEND LIBGIT2_LIBS winhttp)
120-
LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp")
132+
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp")
121133
ELSE()
122134
LIST(APPEND LIBGIT2_LIBS "winhttp")
123135
LIST(APPEND LIBGIT2_PC_LIBS "-lwinhttp")
@@ -294,13 +306,6 @@ ELSE()
294306
MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend ${SHA1_BACKEND}")
295307
ENDIF()
296308

297-
# Include POSIX regex when it is required
298-
IF(WIN32 OR AMIGA OR CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
299-
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/regex" "${libgit2_BINARY_DIR}/deps/regex")
300-
LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/regex")
301-
LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:regex>)
302-
ENDIF()
303-
304309
# Optional external dependency: http-parser
305310
FIND_PACKAGE(HTTP_Parser)
306311
IF (USE_EXT_HTTP_PARSER AND HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
@@ -311,7 +316,7 @@ IF (USE_EXT_HTTP_PARSER AND HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUA
311316
ELSE()
312317
MESSAGE(STATUS "http-parser version 2 was not found or disabled; using bundled 3rd-party sources.")
313318
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/http-parser" "${libgit2_BINARY_DIR}/deps/http-parser")
314-
LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/http-parser")
319+
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/http-parser")
315320
LIST(APPEND LIBGIT2_OBJECTS "$<TARGET_OBJECTS:http-parser>")
316321
ADD_FEATURE_INFO(http-parser ON "http-parser support (bundled)")
317322
ENDIF()
@@ -335,7 +340,7 @@ IF(NOT USE_BUNDLED_ZLIB)
335340
ENDIF()
336341
IF(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND)
337342
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/zlib" "${libgit2_BINARY_DIR}/deps/zlib")
338-
LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
343+
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
339344
LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:zlib>)
340345
ADD_FEATURE_INFO(zlib ON "using bundled zlib")
341346
ENDIF()

0 commit comments

Comments
 (0)