@@ -48,11 +48,23 @@ IF (ENABLE_TRACE STREQUAL "ON")
4848ENDIF ()
4949ADD_FEATURE_INFO(tracing GIT_TRACE "tracing support" )
5050
51+ # Use `regcomp_l` if available
5152CHECK_SYMBOL_EXISTS(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L)
5253IF (HAVE_REGCOMP_L)
5354 SET (GIT_USE_REGCOMP_L 1)
5455ENDIF ()
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+
5668CHECK_FUNCTION_EXISTS(futimens HAVE_FUTIMENS)
5769IF (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} " )
295307ENDIF ()
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
305310FIND_PACKAGE (HTTP_Parser)
306311IF (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
311316ELSE ()
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)" )
317322ENDIF ()
@@ -335,7 +340,7 @@ IF(NOT USE_BUNDLED_ZLIB)
335340ENDIF ()
336341IF (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" )
341346ENDIF ()
0 commit comments