Branch
Hash :
52693ab4
Author :
Date :
2021-09-26T23:11:13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
include(CheckIncludeFile)
include(CheckFunctionExists)
include(CheckTypeSize)
check_include_file(dirent.h HAVE_DIRENT_H)
check_include_file(stdint.h HAVE_STDINT_H)
check_include_file(inttypes.h HAVE_INTTYPES_H)
check_include_file(sys/stat.h HAVE_SYS_STAT_H)
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
check_include_file(unistd.h HAVE_UNISTD_H)
check_include_file(windows.h HAVE_WINDOWS_H)
check_function_exists(bcopy HAVE_BCOPY)
check_function_exists(memmove HAVE_MEMMOVE)
check_function_exists(strerror HAVE_STRERROR)
check_function_exists(strtoll HAVE_STRTOLL)
check_function_exists(strtoq HAVE_STRTOQ)
check_function_exists(_strtoi64 HAVE__STRTOI64)
check_type_size("long long" LONG_LONG)
check_type_size("unsigned long long" UNSIGNED_LONG_LONG)
disable_warnings(unused-function)
disable_warnings(implicit-fallthrough)
# User-configurable options
set(SUPPORT_PCRE8 1)
set(PCRE_LINK_SIZE "2")
set(PCRE_PARENS_NEST_LIMIT "250")
set(PCRE_MATCH_LIMIT "10000000")
set(PCRE_MATCH_LIMIT_RECURSION "MATCH_LIMIT")
set(PCRE_NEWLINE "LF")
set(NO_RECURSE 1)
set(PCRE_POSIX_MALLOC_THRESHOLD "10")
set(BSR_ANYCRLF 0)
if(MINGW)
option(NON_STANDARD_LIB_PREFIX
"ON=Shared libraries built in mingw will be named pcre.dll, etc., instead of libpcre.dll, etc."
OFF)
option(NON_STANDARD_LIB_SUFFIX
"ON=Shared libraries built in mingw will be named libpcre-0.dll, etc., instead of libpcre.dll, etc."
OFF)
endif(MINGW)
# Prepare build configuration
set(pcre_have_long_long 0)
set(pcre_have_ulong_long 0)
if(HAVE_LONG_LONG)
set(pcre_have_long_long 1)
endif(HAVE_LONG_LONG)
if(HAVE_UNSIGNED_LONG_LONG)
set(pcre_have_ulong_long 1)
endif(HAVE_UNSIGNED_LONG_LONG)
set(NEWLINE "")
if(PCRE_NEWLINE STREQUAL "LF")
set(NEWLINE "10")
endif(PCRE_NEWLINE STREQUAL "LF")
if(PCRE_NEWLINE STREQUAL "CR")
set(NEWLINE "13")
endif(PCRE_NEWLINE STREQUAL "CR")
if(PCRE_NEWLINE STREQUAL "CRLF")
set(NEWLINE "3338")
endif(PCRE_NEWLINE STREQUAL "CRLF")
if(PCRE_NEWLINE STREQUAL "ANY")
set(NEWLINE "-1")
endif(PCRE_NEWLINE STREQUAL "ANY")
if(PCRE_NEWLINE STREQUAL "ANYCRLF")
set(NEWLINE "-2")
endif(PCRE_NEWLINE STREQUAL "ANYCRLF")
if(NEWLINE STREQUAL "")
message(FATAL_ERROR "The PCRE_NEWLINE variable must be set to one of the following values: \"LF\", \"CR\", \"CRLF\", \"ANY\", \"ANYCRLF\".")
endif(NEWLINE STREQUAL "")
# Output files
configure_file(config.h.in
${PROJECT_BINARY_DIR}/src/pcre/config.h
@ONLY)
# Source code
set(PCRE_HEADERS ${PROJECT_BINARY_DIR}/src/pcre/config.h)
set(PCRE_SOURCES
pcre_byte_order.c
pcre_chartables.c
pcre_compile.c
pcre_config.c
pcre_dfa_exec.c
pcre_exec.c
pcre_fullinfo.c
pcre_get.c
pcre_globals.c
pcre_jit_compile.c
pcre_maketables.c
pcre_newline.c
pcre_ord2utf8.c
pcre_refcount.c
pcre_string_utils.c
pcre_study.c
pcre_tables.c
pcre_ucd.c
pcre_valid_utf8.c
pcre_version.c
pcre_xclass.c
)
set(PCREPOSIX_HEADERS pcreposix.h)
set(PCREPOSIX_SOURCES pcreposix.c)
# Fix static compilation with MSVC: https://bugs.exim.org/show_bug.cgi?id=1681
# This code was taken from the CMake wiki, not from WebM.
# Build setup
add_definitions(-DHAVE_CONFIG_H)
if(MSVC)
add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS)
endif(MSVC)
set(CMAKE_INCLUDE_CURRENT_DIR 1)
set(targets)
# Libraries
# pcre
include_directories(${PROJECT_BINARY_DIR}/src/pcre)
add_library(pcre OBJECT ${PCRE_HEADERS} ${PCRE_SOURCES} ${PCREPOSIX_SOURCES})
# end CMakeLists.txt