]> git.proxmox.com Git - libgit2.git/blame - cmake/SelectRegex.cmake
Apply M-A hint to libgit2-fixtures
[libgit2.git] / cmake / SelectRegex.cmake
CommitLineData
e579e0f7
MB
1# Specify regular expression implementation
2find_package(PCRE)
3
4if(REGEX_BACKEND STREQUAL "")
5 check_symbol_exists(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L)
6
7 if(HAVE_REGCOMP_L)
8 set(REGEX_BACKEND "regcomp_l")
9 elseif(PCRE_FOUND)
10 set(REGEX_BACKEND "pcre")
11 else()
12 set(REGEX_BACKEND "builtin")
13 endif()
14endif()
15
16if(REGEX_BACKEND STREQUAL "regcomp_l")
17 add_feature_info(regex ON "using system regcomp_l")
18 set(GIT_REGEX_REGCOMP_L 1)
19elseif(REGEX_BACKEND STREQUAL "pcre2")
20 find_package(PCRE2)
21
22 if(NOT PCRE2_FOUND)
23 MESSAGE(FATAL_ERROR "PCRE2 support was requested but not found")
24 endif()
25
26 add_feature_info(regex ON "using system PCRE2")
27 set(GIT_REGEX_PCRE2 1)
28
29 list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE2_INCLUDE_DIRS})
30 list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE2_LIBRARIES})
31 list(APPEND LIBGIT2_PC_REQUIRES "libpcre2-8")
32elseif(REGEX_BACKEND STREQUAL "pcre")
33 add_feature_info(regex ON "using system PCRE")
34 set(GIT_REGEX_PCRE 1)
35
36 list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE_INCLUDE_DIRS})
37 list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE_LIBRARIES})
38 list(APPEND LIBGIT2_PC_REQUIRES "libpcre")
39elseif(REGEX_BACKEND STREQUAL "regcomp")
40 add_feature_info(regex ON "using system regcomp")
41 set(GIT_REGEX_REGCOMP 1)
42elseif(REGEX_BACKEND STREQUAL "builtin")
43 add_feature_info(regex ON "using bundled PCRE")
44 set(GIT_REGEX_BUILTIN 1)
45
46 add_subdirectory("${PROJECT_SOURCE_DIR}/deps/pcre" "${PROJECT_BINARY_DIR}/deps/pcre")
47 list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/pcre")
48 list(APPEND LIBGIT2_DEPENDENCY_OBJECTS $<TARGET_OBJECTS:pcre>)
49else()
50 message(FATAL_ERROR "The REGEX_BACKEND option provided is not supported")
51endif()