]>
Commit | Line | Data |
---|---|---|
e579e0f7 MB |
1 | # Specify regular expression implementation |
2 | find_package(PCRE) | |
3 | ||
4 | if(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() | |
14 | endif() | |
15 | ||
16 | if(REGEX_BACKEND STREQUAL "regcomp_l") | |
17 | add_feature_info(regex ON "using system regcomp_l") | |
18 | set(GIT_REGEX_REGCOMP_L 1) | |
19 | elseif(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") | |
32 | elseif(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") | |
39 | elseif(REGEX_BACKEND STREQUAL "regcomp") | |
40 | add_feature_info(regex ON "using system regcomp") | |
41 | set(GIT_REGEX_REGCOMP 1) | |
42 | elseif(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>) | |
49 | else() | |
50 | message(FATAL_ERROR "The REGEX_BACKEND option provided is not supported") | |
51 | endif() |