diff options
author | Patrick Steinhardt <ps@pks.im> | 2019-05-02 12:09:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-02 12:09:23 +0200 |
commit | 604e281135df0df3c7ed9d200eb77fec48bc30f0 (patch) | |
tree | 6b0a6e8c5ef4035d525a6e280125b0a525e088d3 | |
parent | 957940bf44d16c66acb8ef1d264f8f7e35ba5854 (diff) | |
parent | ee3d71fb86bad4a681d762d90374e46f1d005714 (diff) | |
download | libgit2-604e281135df0df3c7ed9d200eb77fec48bc30f0.tar.gz |
Merge pull request #5063 from pks-t/pks/cmake-regcomp-fix
cmake: correctly detect if system provides `regcomp`
-rw-r--r-- | src/CMakeLists.txt | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b056c9a9b..7a1898fe7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -48,11 +48,23 @@ IF (ENABLE_TRACE STREQUAL "ON") ENDIF() ADD_FEATURE_INFO(tracing GIT_TRACE "tracing support") +# Use `regcomp_l` if available CHECK_SYMBOL_EXISTS(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L) IF (HAVE_REGCOMP_L) SET(GIT_USE_REGCOMP_L 1) ENDIF () +# Otherwise, we either want to use system's `regcomp` or our +# bundled regcomp code, if system doesn't provide `regcomp`. +IF(NOT HAVE_REGCOMP_L) + CHECK_FUNCTION_EXISTS(regcomp HAVE_REGCOMP) + IF(NOT HAVE_REGCOMP) + ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/regex" "${libgit2_BINARY_DIR}/deps/regex") + LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/regex") + LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:regex>) + ENDIF() +ENDIF() + CHECK_FUNCTION_EXISTS(futimens HAVE_FUTIMENS) IF (HAVE_FUTIMENS) SET(GIT_USE_FUTIMENS 1) @@ -117,7 +129,7 @@ IF (WIN32 AND WINHTTP) IF (MINGW) ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/winhttp" "${libgit2_BINARY_DIR}/deps/winhttp") LIST(APPEND LIBGIT2_LIBS winhttp) - LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp") + LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/winhttp") ELSE() LIST(APPEND LIBGIT2_LIBS "winhttp") LIST(APPEND LIBGIT2_PC_LIBS "-lwinhttp") @@ -294,13 +306,6 @@ ELSE() MESSAGE(FATAL_ERROR "Asked for unknown SHA1 backend ${SHA1_BACKEND}") ENDIF() -# Include POSIX regex when it is required -IF(WIN32 OR AMIGA OR CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)") - ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/regex" "${libgit2_BINARY_DIR}/deps/regex") - LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/regex") - LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:regex>) -ENDIF() - # Optional external dependency: http-parser FIND_PACKAGE(HTTP_Parser) 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 ELSE() MESSAGE(STATUS "http-parser version 2 was not found or disabled; using bundled 3rd-party sources.") ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/http-parser" "${libgit2_BINARY_DIR}/deps/http-parser") - LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/http-parser") + LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/http-parser") LIST(APPEND LIBGIT2_OBJECTS "$<TARGET_OBJECTS:http-parser>") ADD_FEATURE_INFO(http-parser ON "http-parser support (bundled)") ENDIF() @@ -335,7 +340,7 @@ IF(NOT USE_BUNDLED_ZLIB) ENDIF() IF(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND) ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/zlib" "${libgit2_BINARY_DIR}/deps/zlib") - LIST(APPEND LIBGIT2_SYSTEM_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib") + LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib") LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:zlib>) ADD_FEATURE_INFO(zlib ON "using bundled zlib") ENDIF() |