1# CMakeLists.txt 2# 3# 4# This file allows building PCRE with the CMake configuration and build 5# tool. Download CMake in source or binary form from http://www.cmake.org/ 6# 7# Original listfile by Christian Ehrlicher <Ch.Ehrlicher@gmx.de> 8# Refined and expanded by Daniel Richard G. <skunk@iSKUNK.ORG> 9# 2007-09-14 mod by Sheri so 7.4 supported configuration options can be entered 10# 2007-09-19 Adjusted by PH to retain previous default settings 11# 2007-12-26 (a) On UNIX, use names libpcre instead of just pcre 12# (b) Ensure pcretest and pcregrep link with the local library, 13# not a previously-installed one. 14# (c) Add PCRE_SUPPORT_LIBREADLINE, PCRE_SUPPORT_LIBZ, and 15# PCRE_SUPPORT_LIBBZ2. 16# 2008-01-20 Brought up to date to include several new features by Christian 17# Ehrlicher. 18# 2008-01-22 Sheri added options for backward compatibility of library names 19# when building with minGW: 20# if "ON", NON_STANDARD_LIB_PREFIX causes shared libraries to 21# be built without "lib" as prefix. (The libraries will be named 22# pcre.dll, pcreposix.dll and pcrecpp.dll). 23# if "ON", NON_STANDARD_LIB_SUFFIX causes shared libraries to 24# be built with suffix of "-0.dll". (The libraries will be named 25# libpcre-0.dll, libpcreposix-0.dll and libpcrecpp-0.dll - same names 26# built by default with Configure and Make. 27# 2008-01-23 PH removed the automatic build of pcredemo. 28# 2008-04-22 PH modified READLINE support so it finds NCURSES when needed. 29# 2008-07-03 PH updated for revised UCP property support (change of files) 30# 2009-03-23 PH applied Steven Van Ingelgem's patch to change the name 31# CMAKE_BINARY_DIR to PROJECT_BINARY_DIR so that it works when PCRE 32# is included within another project. 33# 2009-03-23 PH applied a modified version of Steven Van Ingelgem's patches to 34# add options to stop the building of pcregrep and the tests, and 35# to disable the final configuration report. 36# 2009-04-11 PH applied Christian Ehrlicher's patch to show compiler flags that 37# are set by specifying a release type. 38# 2010-01-02 PH added test for stdint.h 39# 2010-03-02 PH added test for inttypes.h 40# 2011-08-01 PH added PCREGREP_BUFSIZE 41# 2011-08-22 PH added PCRE_SUPPORT_JIT 42# 2011-09-06 PH modified WIN32 ADD_TEST line as suggested by Sergey Cherepanov 43# 2011-09-06 PH added PCRE_SUPPORT_PCREGREP_JIT 44# 2011-10-04 Sheri added support for including coff data in windows shared libraries 45# compiled with MINGW if pcre.rc and/or pcreposix.rc are placed in 46# the source dir by the user prior to building 47# 2011-10-04 Sheri changed various add_test's to use exes' location built instead 48# of DEBUG location only (likely only matters in MSVC) 49# 2011-10-04 Sheri added scripts to provide needed variables to RunTest and 50# RunGrepTest (used for UNIX and Msys) 51# 2011-10-04 Sheri added scripts to provide needed variables and to execute 52# RunTest.bat in Win32 (for effortless testing with "make test") 53# 2011-10-04 Sheri Increased minimum required cmake version 54# 2012-01-06 PH removed pcre_info.c and added pcre_string_utils.c 55# 2012-01-10 Zoltan Herczeg added libpcre16 support 56# 2012-01-13 Stephen Kelly added out of source build support 57# 2012-01-17 PH applied Stephen Kelly's patch to parse the version data out 58# of the configure.ac file 59# 2012-02-26 PH added support for libedit 60# 2012-09-06 PH added support for PCRE_EBCDIC_NL25 61# 2012-09-08 ChPe added PCRE32 support 62# 2012-10-23 PH added support for VALGRIND and GCOV 63# 2012-12-08 PH added patch from Daniel Richard G to quash some MSVC warnings 64# 2013-07-01 PH realized that the "support" for GCOV was a total nonsense and 65# so it has been removed. 66# 2013-10-08 PH got rid of the "source" command, which is a bash-ism (use ".") 67# 2013-11-05 PH added support for PARENS_NEST_LIMIT 68 69PROJECT(PCRE C CXX) 70 71# Increased minimum to 2.8.0 to support newer add_test features 72 73CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0) 74 75SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake 76 77# external packages 78FIND_PACKAGE( BZip2 ) 79FIND_PACKAGE( ZLIB ) 80FIND_PACKAGE( Readline ) 81FIND_PACKAGE( Editline ) 82 83# Configuration checks 84 85INCLUDE(CheckIncludeFile) 86INCLUDE(CheckIncludeFileCXX) 87INCLUDE(CheckFunctionExists) 88INCLUDE(CheckTypeSize) 89 90CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H) 91CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) 92CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H) 93CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H) 94CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H) 95CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H) 96CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H) 97 98CHECK_INCLUDE_FILE_CXX(type_traits.h HAVE_TYPE_TRAITS_H) 99CHECK_INCLUDE_FILE_CXX(bits/type_traits.h HAVE_BITS_TYPE_TRAITS_H) 100 101CHECK_FUNCTION_EXISTS(bcopy HAVE_BCOPY) 102CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE) 103CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR) 104CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL) 105CHECK_FUNCTION_EXISTS(strtoq HAVE_STRTOQ) 106CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64) 107 108CHECK_TYPE_SIZE("long long" LONG_LONG) 109CHECK_TYPE_SIZE("unsigned long long" UNSIGNED_LONG_LONG) 110 111# User-configurable options 112# 113# (Note: CMakeSetup displays these in alphabetical order, regardless of 114# the order we use here) 115 116SET(BUILD_SHARED_LIBS OFF CACHE BOOL 117 "Build shared libraries instead of static ones.") 118 119OPTION(PCRE_BUILD_PCRE8 "Build 8 bit PCRE library" ON) 120 121OPTION(PCRE_BUILD_PCRE16 "Build 16 bit PCRE library" OFF) 122 123OPTION(PCRE_BUILD_PCRE32 "Build 32 bit PCRE library" OFF) 124 125OPTION(PCRE_BUILD_PCRECPP "Build the PCRE C++ library (pcrecpp)." ON) 126 127SET(PCRE_EBCDIC OFF CACHE BOOL 128 "Use EBCDIC coding instead of ASCII. (This is rarely used outside of mainframe systems.)") 129 130SET(PCRE_EBCDIC_NL25 OFF CACHE BOOL 131 "Use 0x25 as EBCDIC NL character instead of 0x15; implies EBCDIC.") 132 133SET(PCRE_LINK_SIZE "2" CACHE STRING 134 "Internal link size (2, 3 or 4 allowed). See LINK_SIZE in config.h.in for details.") 135 136SET(PCRE_PARENS_NEST_LIMIT "250" CACHE STRING 137 "Default nested parentheses limit. See PARENS_NEST_LIMIT in config.h.in for details.") 138 139SET(PCRE_MATCH_LIMIT "10000000" CACHE STRING 140 "Default limit on internal looping. See MATCH_LIMIT in config.h.in for details.") 141 142SET(PCRE_MATCH_LIMIT_RECURSION "MATCH_LIMIT" CACHE STRING 143 "Default limit on internal recursion. See MATCH_LIMIT_RECURSION in config.h.in for details.") 144 145SET(PCREGREP_BUFSIZE "20480" CACHE STRING 146 "Buffer size parameter for pcregrep. See PCREGREP_BUFSIZE in config.h.in for details.") 147 148SET(PCRE_NEWLINE "LF" CACHE STRING 149 "What to recognize as a newline (one of CR, LF, CRLF, ANY, ANYCRLF).") 150 151SET(PCRE_NO_RECURSE OFF CACHE BOOL 152 "If ON, then don't use stack recursion when matching. See NO_RECURSE in config.h.in for details.") 153 154SET(PCRE_POSIX_MALLOC_THRESHOLD "10" CACHE STRING 155 "Threshold for malloc() usage. See POSIX_MALLOC_THRESHOLD in config.h.in for details.") 156 157SET(PCRE_SUPPORT_JIT OFF CACHE BOOL 158 "Enable support for Just-in-time compiling.") 159 160SET(PCRE_SUPPORT_PCREGREP_JIT ON CACHE BOOL 161 "Enable use of Just-in-time compiling in pcregrep.") 162 163SET(PCRE_SUPPORT_UTF OFF CACHE BOOL 164 "Enable support for Unicode Transformation Format (UTF-8/UTF-16/UTF-32) encoding.") 165 166SET(PCRE_SUPPORT_UNICODE_PROPERTIES OFF CACHE BOOL 167 "Enable support for Unicode properties (if set, UTF support will be enabled as well).") 168 169SET(PCRE_SUPPORT_BSR_ANYCRLF OFF CACHE BOOL 170 "ON=Backslash-R matches only LF CR and CRLF, OFF=Backslash-R matches all Unicode Linebreaks") 171 172SET(PCRE_SUPPORT_VALGRIND OFF CACHE BOOL 173 "Enable Valgrind support.") 174 175OPTION(PCRE_SHOW_REPORT "Show the final configuration report" ON) 176OPTION(PCRE_BUILD_PCREGREP "Build pcregrep" ON) 177OPTION(PCRE_BUILD_TESTS "Build the tests" ON) 178 179IF (MINGW) 180 OPTION(NON_STANDARD_LIB_PREFIX 181 "ON=Shared libraries built in mingw will be named pcre.dll, etc., instead of libpcre.dll, etc." 182 OFF) 183 184 OPTION(NON_STANDARD_LIB_SUFFIX 185 "ON=Shared libraries built in mingw will be named libpcre-0.dll, etc., instead of libpcre.dll, etc." 186 OFF) 187ENDIF(MINGW) 188 189IF(MSVC) 190 OPTION(INSTALL_MSVC_PDB 191 "ON=Install .pdb files built by MSVC, if generated" 192 OFF) 193ENDIF(MSVC) 194 195# bzip2 lib 196IF(BZIP2_FOUND) 197 OPTION (PCRE_SUPPORT_LIBBZ2 "Enable support for linking pcregrep with libbz2." ON) 198ENDIF(BZIP2_FOUND) 199IF(PCRE_SUPPORT_LIBBZ2) 200 INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR}) 201ENDIF(PCRE_SUPPORT_LIBBZ2) 202 203# zlib 204IF(ZLIB_FOUND) 205 OPTION (PCRE_SUPPORT_LIBZ "Enable support for linking pcregrep with libz." ON) 206ENDIF(ZLIB_FOUND) 207IF(PCRE_SUPPORT_LIBZ) 208 INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) 209ENDIF(PCRE_SUPPORT_LIBZ) 210 211# editline lib 212IF(EDITLINE_FOUND) 213 OPTION (PCRE_SUPPORT_LIBEDIT "Enable support for linking pcretest with libedit." OFF) 214ENDIF(EDITLINE_FOUND) 215IF(PCRE_SUPPORT_LIBEDIT) 216 INCLUDE_DIRECTORIES(${EDITLINE_INCLUDE_DIR}) 217ENDIF(PCRE_SUPPORT_LIBEDIT) 218 219# readline lib 220IF(READLINE_FOUND) 221 OPTION (PCRE_SUPPORT_LIBREADLINE "Enable support for linking pcretest with libreadline." ON) 222ENDIF(READLINE_FOUND) 223IF(PCRE_SUPPORT_LIBREADLINE) 224 INCLUDE_DIRECTORIES(${READLINE_INCLUDE_DIR}) 225ENDIF(PCRE_SUPPORT_LIBREADLINE) 226 227# Prepare build configuration 228 229SET(pcre_have_type_traits 0) 230SET(pcre_have_bits_type_traits 0) 231 232IF(HAVE_TYPE_TRAITS_H) 233 SET(pcre_have_type_traits 1) 234ENDIF(HAVE_TYPE_TRAITS_H) 235 236IF(HAVE_BITS_TYPE_TRAITS_H) 237 SET(pcre_have_bits_type_traits 1) 238ENDIF(HAVE_BITS_TYPE_TRAITS_H) 239 240SET(pcre_have_long_long 0) 241SET(pcre_have_ulong_long 0) 242 243IF(HAVE_LONG_LONG) 244 SET(pcre_have_long_long 1) 245ENDIF(HAVE_LONG_LONG) 246 247IF(HAVE_UNSIGNED_LONG_LONG) 248 SET(pcre_have_ulong_long 1) 249ENDIF(HAVE_UNSIGNED_LONG_LONG) 250 251IF(NOT BUILD_SHARED_LIBS) 252 SET(PCRE_STATIC 1) 253ENDIF(NOT BUILD_SHARED_LIBS) 254 255IF(NOT PCRE_BUILD_PCRE8 AND NOT PCRE_BUILD_PCRE16 AND NOT PCRE_BUILD_PCRE32) 256 MESSAGE(FATAL_ERROR "At least one of PCRE_BUILD_PCRE8, PCRE_BUILD_PCRE16 or PCRE_BUILD_PCRE32 must be enabled") 257ENDIF(NOT PCRE_BUILD_PCRE8 AND NOT PCRE_BUILD_PCRE16 AND NOT PCRE_BUILD_PCRE32) 258 259IF(PCRE_BUILD_PCRE8) 260 SET(SUPPORT_PCRE8 1) 261ENDIF(PCRE_BUILD_PCRE8) 262 263IF(PCRE_BUILD_PCRE16) 264 SET(SUPPORT_PCRE16 1) 265ENDIF(PCRE_BUILD_PCRE16) 266 267IF(PCRE_BUILD_PCRE32) 268 SET(SUPPORT_PCRE32 1) 269ENDIF(PCRE_BUILD_PCRE32) 270 271IF(PCRE_BUILD_PCRECPP AND NOT PCRE_BUILD_PCRE8) 272 MESSAGE(STATUS "** PCRE_BUILD_PCRE8 must be enabled for the C++ library support") 273 SET(PCRE_BUILD_PCRECPP OFF) 274ENDIF(PCRE_BUILD_PCRECPP AND NOT PCRE_BUILD_PCRE8) 275 276IF(PCRE_BUILD_PCREGREP AND NOT PCRE_BUILD_PCRE8) 277 MESSAGE(STATUS "** PCRE_BUILD_PCRE8 must be enabled for the pcregrep program") 278 SET(PCRE_BUILD_PCREGREP OFF) 279ENDIF(PCRE_BUILD_PCREGREP AND NOT PCRE_BUILD_PCRE8) 280 281IF(PCRE_SUPPORT_LIBREADLINE AND PCRE_SUPPORT_LIBEDIT) 282 MESSAGE(FATAL_ERROR "Only one of libreadline or libeditline can be specified") 283ENDIF(PCRE_SUPPORT_LIBREADLINE AND PCRE_SUPPORT_LIBEDIT) 284 285IF(PCRE_SUPPORT_BSR_ANYCRLF) 286 SET(BSR_ANYCRLF 1) 287ENDIF(PCRE_SUPPORT_BSR_ANYCRLF) 288 289IF(PCRE_SUPPORT_UTF OR PCRE_SUPPORT_UNICODE_PROPERTIES) 290 SET(SUPPORT_UTF 1) 291 SET(PCRE_SUPPORT_UTF ON) 292ENDIF(PCRE_SUPPORT_UTF OR PCRE_SUPPORT_UNICODE_PROPERTIES) 293 294IF(PCRE_SUPPORT_UNICODE_PROPERTIES) 295 SET(SUPPORT_UCP 1) 296ENDIF(PCRE_SUPPORT_UNICODE_PROPERTIES) 297 298IF(PCRE_SUPPORT_JIT) 299 SET(SUPPORT_JIT 1) 300ENDIF(PCRE_SUPPORT_JIT) 301 302IF(PCRE_SUPPORT_PCREGREP_JIT) 303 SET(SUPPORT_PCREGREP_JIT 1) 304ENDIF(PCRE_SUPPORT_PCREGREP_JIT) 305 306IF(PCRE_SUPPORT_VALGRIND) 307 SET(SUPPORT_VALGRIND 1) 308ENDIF(PCRE_SUPPORT_VALGRIND) 309 310# This next one used to contain 311# SET(PCRETEST_LIBS ${READLINE_LIBRARY}) 312# but I was advised to add the NCURSES test as well, along with 313# some modifications to cmake/FindReadline.cmake which should 314# make it possible to override the default if necessary. PH 315 316IF(PCRE_SUPPORT_LIBREADLINE) 317 SET(SUPPORT_LIBREADLINE 1) 318 SET(PCRETEST_LIBS ${READLINE_LIBRARY} ${NCURSES_LIBRARY}) 319ENDIF(PCRE_SUPPORT_LIBREADLINE) 320 321# libedit is a plug-compatible alternative to libreadline 322 323IF(PCRE_SUPPORT_LIBEDIT) 324 SET(SUPPORT_LIBEDIT 1) 325 SET(PCRETEST_LIBS ${EDITLINE_LIBRARY} ${NCURSES_LIBRARY}) 326ENDIF(PCRE_SUPPORT_LIBEDIT) 327 328IF(PCRE_SUPPORT_LIBZ) 329 SET(SUPPORT_LIBZ 1) 330 SET(PCREGREP_LIBS ${PCREGREP_LIBS} ${ZLIB_LIBRARIES}) 331ENDIF(PCRE_SUPPORT_LIBZ) 332 333IF(PCRE_SUPPORT_LIBBZ2) 334 SET(SUPPORT_LIBBZ2 1) 335 SET(PCREGREP_LIBS ${PCREGREP_LIBS} ${BZIP2_LIBRARIES}) 336ENDIF(PCRE_SUPPORT_LIBBZ2) 337 338SET(NEWLINE "") 339 340IF(PCRE_NEWLINE STREQUAL "LF") 341 SET(NEWLINE "10") 342ENDIF(PCRE_NEWLINE STREQUAL "LF") 343IF(PCRE_NEWLINE STREQUAL "CR") 344 SET(NEWLINE "13") 345ENDIF(PCRE_NEWLINE STREQUAL "CR") 346IF(PCRE_NEWLINE STREQUAL "CRLF") 347 SET(NEWLINE "3338") 348ENDIF(PCRE_NEWLINE STREQUAL "CRLF") 349IF(PCRE_NEWLINE STREQUAL "ANY") 350 SET(NEWLINE "-1") 351ENDIF(PCRE_NEWLINE STREQUAL "ANY") 352IF(PCRE_NEWLINE STREQUAL "ANYCRLF") 353 SET(NEWLINE "-2") 354ENDIF(PCRE_NEWLINE STREQUAL "ANYCRLF") 355 356IF(NEWLINE STREQUAL "") 357 MESSAGE(FATAL_ERROR "The PCRE_NEWLINE variable must be set to one of the following values: \"LF\", \"CR\", \"CRLF\", \"ANY\", \"ANYCRLF\".") 358ENDIF(NEWLINE STREQUAL "") 359 360IF(PCRE_EBCDIC) 361 SET(EBCDIC 1) 362IF(PCRE_NEWLINE STREQUAL "LF") 363 SET(NEWLINE "21") 364ENDIF(PCRE_NEWLINE STREQUAL "LF") 365IF(PCRE_NEWLINE STREQUAL "CRLF") 366 SET(NEWLINE "3349") 367ENDIF(PCRE_NEWLINE STREQUAL "CRLF") 368ENDIF(PCRE_EBCDIC) 369 370IF(PCRE_EBCDIC_NL25) 371 SET(EBCDIC 1) 372 SET(EBCDIC_NL25 1) 373IF(PCRE_NEWLINE STREQUAL "LF") 374 SET(NEWLINE "37") 375ENDIF(PCRE_NEWLINE STREQUAL "LF") 376IF(PCRE_NEWLINE STREQUAL "CRLF") 377 SET(NEWLINE "3365") 378ENDIF(PCRE_NEWLINE STREQUAL "CRLF") 379ENDIF(PCRE_EBCDIC_NL25) 380 381IF(PCRE_NO_RECURSE) 382 SET(NO_RECURSE 1) 383ENDIF(PCRE_NO_RECURSE) 384 385# Output files 386CONFIGURE_FILE(config-cmake.h.in 387 ${PROJECT_BINARY_DIR}/config.h 388 @ONLY) 389 390# Parse version numbers and date out of configure.ac 391 392file(STRINGS ${PROJECT_SOURCE_DIR}/configure.ac 393 configure_lines 394 LIMIT_COUNT 50 # Read only the first 50 lines of the file 395) 396 397set(SEARCHED_VARIABLES "pcre_major" "pcre_minor" "pcre_prerelease" "pcre_date") 398foreach(configure_line ${configure_lines}) 399 foreach(_substitution_variable ${SEARCHED_VARIABLES}) 400 string(TOUPPER ${_substitution_variable} _substitution_variable_upper) 401 if (NOT ${_substitution_variable_upper}) 402 string(REGEX MATCH "m4_define\\(${_substitution_variable}, \\[(.*)\\]" MACTHED_STRING ${configure_line}) 403 if (CMAKE_MATCH_1) 404 set(${_substitution_variable_upper} ${CMAKE_MATCH_1}) 405 endif() 406 endif() 407 endforeach() 408endforeach() 409 410CONFIGURE_FILE(pcre.h.in 411 ${PROJECT_BINARY_DIR}/pcre.h 412 @ONLY) 413 414# What about pcre-config and libpcre.pc? 415 416IF(PCRE_BUILD_PCRECPP) 417 CONFIGURE_FILE(pcre_stringpiece.h.in 418 ${PROJECT_BINARY_DIR}/pcre_stringpiece.h 419 @ONLY) 420 421 CONFIGURE_FILE(pcrecpparg.h.in 422 ${PROJECT_BINARY_DIR}/pcrecpparg.h 423 @ONLY) 424ENDIF(PCRE_BUILD_PCRECPP) 425 426# Character table generation 427 428OPTION(PCRE_REBUILD_CHARTABLES "Rebuild char tables" OFF) 429IF(PCRE_REBUILD_CHARTABLES) 430 ADD_EXECUTABLE(dftables dftables.c) 431 432 GET_TARGET_PROPERTY(DFTABLES_EXE dftables LOCATION) 433 434 ADD_CUSTOM_COMMAND( 435 COMMENT "Generating character tables (pcre_chartables.c) for current locale" 436 DEPENDS dftables 437 COMMAND ${DFTABLES_EXE} 438 ARGS ${PROJECT_BINARY_DIR}/pcre_chartables.c 439 OUTPUT ${PROJECT_BINARY_DIR}/pcre_chartables.c 440 ) 441ELSE(PCRE_REBUILD_CHARTABLES) 442 CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/pcre_chartables.c.dist 443 ${PROJECT_BINARY_DIR}/pcre_chartables.c 444 COPYONLY) 445ENDIF(PCRE_REBUILD_CHARTABLES) 446 447# Source code 448 449SET(PCRE_HEADERS ${PROJECT_BINARY_DIR}/pcre.h) 450 451IF(PCRE_BUILD_PCRE8) 452SET(PCRE_SOURCES 453 pcre_byte_order.c 454 pcre_chartables.c 455 pcre_compile.c 456 pcre_config.c 457 pcre_dfa_exec.c 458 pcre_exec.c 459 pcre_fullinfo.c 460 pcre_get.c 461 pcre_globals.c 462 pcre_jit_compile.c 463 pcre_maketables.c 464 pcre_newline.c 465 pcre_ord2utf8.c 466 pcre_refcount.c 467 pcre_string_utils.c 468 pcre_study.c 469 pcre_tables.c 470 pcre_ucd.c 471 pcre_valid_utf8.c 472 pcre_version.c 473 pcre_xclass.c 474) 475 476SET(PCREPOSIX_HEADERS pcreposix.h) 477 478SET(PCREPOSIX_SOURCES pcreposix.c) 479 480ENDIF(PCRE_BUILD_PCRE8) 481 482IF(PCRE_BUILD_PCRE16) 483SET(PCRE16_SOURCES 484 pcre16_byte_order.c 485 pcre16_chartables.c 486 pcre16_compile.c 487 pcre16_config.c 488 pcre16_dfa_exec.c 489 pcre16_exec.c 490 pcre16_fullinfo.c 491 pcre16_get.c 492 pcre16_globals.c 493 pcre16_jit_compile.c 494 pcre16_maketables.c 495 pcre16_newline.c 496 pcre16_ord2utf16.c 497 pcre16_refcount.c 498 pcre16_string_utils.c 499 pcre16_study.c 500 pcre16_tables.c 501 pcre16_ucd.c 502 pcre16_utf16_utils.c 503 pcre16_valid_utf16.c 504 pcre16_version.c 505 pcre16_xclass.c 506) 507ENDIF(PCRE_BUILD_PCRE16) 508 509IF(PCRE_BUILD_PCRE32) 510SET(PCRE32_SOURCES 511 pcre32_byte_order.c 512 pcre32_chartables.c 513 pcre32_compile.c 514 pcre32_config.c 515 pcre32_dfa_exec.c 516 pcre32_exec.c 517 pcre32_fullinfo.c 518 pcre32_get.c 519 pcre32_globals.c 520 pcre32_jit_compile.c 521 pcre32_maketables.c 522 pcre32_newline.c 523 pcre32_ord2utf32.c 524 pcre32_refcount.c 525 pcre32_string_utils.c 526 pcre32_study.c 527 pcre32_tables.c 528 pcre32_ucd.c 529 pcre32_utf32_utils.c 530 pcre32_valid_utf32.c 531 pcre32_version.c 532 pcre32_xclass.c 533) 534ENDIF(PCRE_BUILD_PCRE32) 535 536IF(MINGW AND NOT PCRE_STATIC) 537IF (EXISTS ${PROJECT_SOURCE_DIR}/pcre.rc) 538ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/pcre.o 539PRE-LINK 540COMMAND windres ARGS pcre.rc pcre.o 541WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 542COMMENT Using pcre coff info in mingw build) 543SET(PCRE_SOURCES 544 ${PCRE_SOURCES} ${PROJECT_SOURCE_DIR}/pcre.o 545) 546ENDIF(EXISTS ${PROJECT_SOURCE_DIR}/pcre.rc) 547IF (EXISTS ${PROJECT_SOURCE_DIR}/pcreposix.rc) 548ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/pcreposix.o 549PRE-LINK 550COMMAND windres ARGS pcreposix.rc pcreposix.o 551WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 552COMMENT Using pcreposix coff info in mingw build) 553SET(PCREPOSIX_SOURCES 554 ${PCREPOSIX_SOURCES} ${PROJECT_SOURCE_DIR}/pcreposix.o 555) 556ENDIF(EXISTS ${PROJECT_SOURCE_DIR}/pcreposix.rc) 557ENDIF(MINGW AND NOT PCRE_STATIC) 558 559IF(MSVC AND NOT PCRE_STATIC) 560IF (EXISTS ${PROJECT_SOURCE_DIR}/pcre.rc) 561SET(PCRE_SOURCES 562 ${PCRE_SOURCES} pcre.rc) 563ENDIF(EXISTS ${PROJECT_SOURCE_DIR}/pcre.rc) 564IF (EXISTS ${PROJECT_SOURCE_DIR}/pcreposix.rc) 565SET(PCREPOSIX_SOURCES 566 ${PCREPOSIX_SOURCES} pcreposix.rc) 567ENDIF (EXISTS ${PROJECT_SOURCE_DIR}/pcreposix.rc) 568ENDIF(MSVC AND NOT PCRE_STATIC) 569 570SET(PCRECPP_HEADERS 571 pcrecpp.h 572 pcre_scanner.h 573 ${PROJECT_BINARY_DIR}/pcrecpparg.h 574 ${PROJECT_BINARY_DIR}/pcre_stringpiece.h 575) 576 577SET(PCRECPP_SOURCES 578 pcrecpp.cc 579 pcre_scanner.cc 580 pcre_stringpiece.cc 581) 582 583# Build setup 584 585ADD_DEFINITIONS(-DHAVE_CONFIG_H) 586 587IF(MSVC) 588 ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS) 589ENDIF(MSVC) 590 591SET(CMAKE_INCLUDE_CURRENT_DIR 1) 592# needed to make sure to not link debug libs 593# against release libs and vice versa 594IF(WIN32) 595 SET(CMAKE_DEBUG_POSTFIX "d") 596ENDIF(WIN32) 597 598SET(targets) 599 600# Libraries 601# pcre 602IF(PCRE_BUILD_PCRE8) 603ADD_LIBRARY(pcre ${PCRE_HEADERS} ${PCRE_SOURCES} ${PROJECT_BINARY_DIR}/config.h) 604SET(targets ${targets} pcre) 605ADD_LIBRARY(pcreposix ${PCREPOSIX_HEADERS} ${PCREPOSIX_SOURCES}) 606SET(targets ${targets} pcreposix) 607TARGET_LINK_LIBRARIES(pcreposix pcre) 608 609IF(MINGW AND NOT PCRE_STATIC) 610 IF(NON_STANDARD_LIB_PREFIX) 611 SET_TARGET_PROPERTIES(pcre pcreposix 612 PROPERTIES PREFIX "" 613 ) 614 ENDIF(NON_STANDARD_LIB_PREFIX) 615 616 IF(NON_STANDARD_LIB_SUFFIX) 617 SET_TARGET_PROPERTIES(pcre pcreposix 618 PROPERTIES SUFFIX "-0.dll" 619 ) 620 ENDIF(NON_STANDARD_LIB_SUFFIX) 621ENDIF(MINGW AND NOT PCRE_STATIC) 622 623ENDIF(PCRE_BUILD_PCRE8) 624 625IF(PCRE_BUILD_PCRE16) 626ADD_LIBRARY(pcre16 ${PCRE_HEADERS} ${PCRE16_SOURCES} ${PROJECT_BINARY_DIR}/config.h) 627SET(targets ${targets} pcre16) 628 629IF(MINGW AND NOT PCRE_STATIC) 630 IF(NON_STANDARD_LIB_PREFIX) 631 SET_TARGET_PROPERTIES(pcre16 632 PROPERTIES PREFIX "" 633 ) 634 ENDIF(NON_STANDARD_LIB_PREFIX) 635 636 IF(NON_STANDARD_LIB_SUFFIX) 637 SET_TARGET_PROPERTIES(pcre16 638 PROPERTIES SUFFIX "-0.dll" 639 ) 640 ENDIF(NON_STANDARD_LIB_SUFFIX) 641ENDIF(MINGW AND NOT PCRE_STATIC) 642 643ENDIF(PCRE_BUILD_PCRE16) 644 645IF(PCRE_BUILD_PCRE32) 646ADD_LIBRARY(pcre32 ${PCRE_HEADERS} ${PCRE32_SOURCES} ${PROJECT_BINARY_DIR}/config.h) 647SET(targets ${targets} pcre32) 648 649IF(MINGW AND NOT PCRE_STATIC) 650 IF(NON_STANDARD_LIB_PREFIX) 651 SET_TARGET_PROPERTIES(pcre32 652 PROPERTIES PREFIX "" 653 ) 654 ENDIF(NON_STANDARD_LIB_PREFIX) 655 656 IF(NON_STANDARD_LIB_SUFFIX) 657 SET_TARGET_PROPERTIES(pcre32 658 PROPERTIES SUFFIX "-0.dll" 659 ) 660 ENDIF(NON_STANDARD_LIB_SUFFIX) 661ENDIF(MINGW AND NOT PCRE_STATIC) 662 663ENDIF(PCRE_BUILD_PCRE32) 664 665# pcrecpp 666IF(PCRE_BUILD_PCRECPP) 667ADD_LIBRARY(pcrecpp ${PCRECPP_HEADERS} ${PCRECPP_SOURCES}) 668SET(targets ${targets} pcrecpp) 669TARGET_LINK_LIBRARIES(pcrecpp pcre) 670 671 IF(MINGW AND NOT PCRE_STATIC) 672 IF(NON_STANDARD_LIB_PREFIX) 673 SET_TARGET_PROPERTIES(pcrecpp 674 PROPERTIES PREFIX "" 675 ) 676 ENDIF(NON_STANDARD_LIB_PREFIX) 677 678 IF(NON_STANDARD_LIB_SUFFIX) 679 SET_TARGET_PROPERTIES(pcrecpp 680 PROPERTIES SUFFIX "-0.dll" 681 ) 682 ENDIF(NON_STANDARD_LIB_SUFFIX) 683 ENDIF(MINGW AND NOT PCRE_STATIC) 684ENDIF(PCRE_BUILD_PCRECPP) 685 686 687# Executables 688 689# Removed by PH (2008-01-23) because pcredemo shouldn't really be built 690# automatically, and it gave trouble in some environments anyway. 691# ADD_EXECUTABLE(pcredemo pcredemo.c) 692# TARGET_LINK_LIBRARIES(pcredemo pcreposix) 693# IF(NOT BUILD_SHARED_LIBS) 694# # make sure to not use declspec(dllimport) in static mode on windows 695# SET_TARGET_PROPERTIES(pcredemo PROPERTIES COMPILE_FLAGS "-DPCRE_STATIC") 696# ENDIF(NOT BUILD_SHARED_LIBS) 697 698IF(PCRE_BUILD_PCREGREP) 699 ADD_EXECUTABLE(pcregrep pcregrep.c) 700 SET(targets ${targets} pcregrep) 701 TARGET_LINK_LIBRARIES(pcregrep pcreposix ${PCREGREP_LIBS}) 702ENDIF(PCRE_BUILD_PCREGREP) 703 704# Testing 705IF(PCRE_BUILD_TESTS) 706 ENABLE_TESTING() 707 708 SET(PCRETEST_SOURCES pcretest.c) 709 IF(PCRE_BUILD_PCRE8) 710 LIST(APPEND PCRETEST_SOURCES pcre_printint.c) 711 ENDIF(PCRE_BUILD_PCRE8) 712 IF(PCRE_BUILD_PCRE16) 713 LIST(APPEND PCRETEST_SOURCES pcre16_printint.c) 714 ENDIF(PCRE_BUILD_PCRE16) 715 IF(PCRE_BUILD_PCRE32) 716 LIST(APPEND PCRETEST_SOURCES pcre32_printint.c) 717 ENDIF(PCRE_BUILD_PCRE32) 718 719 ADD_EXECUTABLE(pcretest ${PCRETEST_SOURCES}) 720 SET(targets ${targets} pcretest) 721 IF(PCRE_BUILD_PCRE8) 722 LIST(APPEND PCRETEST_LIBS pcreposix pcre) 723 ENDIF(PCRE_BUILD_PCRE8) 724 IF(PCRE_BUILD_PCRE16) 725 LIST(APPEND PCRETEST_LIBS pcre16) 726 ENDIF(PCRE_BUILD_PCRE16) 727 IF(PCRE_BUILD_PCRE32) 728 LIST(APPEND PCRETEST_LIBS pcre32) 729 ENDIF(PCRE_BUILD_PCRE32) 730 TARGET_LINK_LIBRARIES(pcretest ${PCRETEST_LIBS}) 731 732 IF(PCRE_SUPPORT_JIT) 733 ADD_EXECUTABLE(pcre_jit_test pcre_jit_test.c) 734 SET(targets ${targets} pcre_jit_test) 735 SET(PCRE_JIT_TEST_LIBS ) 736 IF(PCRE_BUILD_PCRE8) 737 LIST(APPEND PCRE_JIT_TEST_LIBS pcre) 738 ENDIF(PCRE_BUILD_PCRE8) 739 IF(PCRE_BUILD_PCRE16) 740 LIST(APPEND PCRE_JIT_TEST_LIBS pcre16) 741 ENDIF(PCRE_BUILD_PCRE16) 742 IF(PCRE_BUILD_PCRE32) 743 LIST(APPEND PCRE_JIT_TEST_LIBS pcre32) 744 ENDIF(PCRE_BUILD_PCRE32) 745 TARGET_LINK_LIBRARIES(pcre_jit_test ${PCRE_JIT_TEST_LIBS}) 746 ENDIF(PCRE_SUPPORT_JIT) 747 748 IF(PCRE_BUILD_PCRECPP) 749 ADD_EXECUTABLE(pcrecpp_unittest pcrecpp_unittest.cc) 750 SET(targets ${targets} pcrecpp_unittest) 751 TARGET_LINK_LIBRARIES(pcrecpp_unittest pcrecpp) 752 IF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC) 753 SET_TARGET_PROPERTIES(pcrecpp 754 PROPERTIES PREFIX "" 755 ) 756 ENDIF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC) 757 758 ADD_EXECUTABLE(pcre_scanner_unittest pcre_scanner_unittest.cc) 759 SET(targets ${targets} pcre_scanner_unittest) 760 TARGET_LINK_LIBRARIES(pcre_scanner_unittest pcrecpp) 761 762 ADD_EXECUTABLE(pcre_stringpiece_unittest pcre_stringpiece_unittest.cc) 763 SET(targets ${targets} pcre_stringpiece_unittest) 764 TARGET_LINK_LIBRARIES(pcre_stringpiece_unittest pcrecpp) 765 ENDIF(PCRE_BUILD_PCRECPP) 766 767 # exes in Debug location tested by the RunTest shell script 768 # via "make test" 769 IF(PCRE_BUILD_PCREGREP) 770 GET_TARGET_PROPERTY(PCREGREP_EXE pcregrep DEBUG_LOCATION) 771 ENDIF(PCRE_BUILD_PCREGREP) 772 773 GET_TARGET_PROPERTY(PCRETEST_EXE pcretest DEBUG_LOCATION) 774 775# ================================================= 776 # Write out a CTest configuration file 777 # 778 FILE(WRITE ${PROJECT_BINARY_DIR}/CTestCustom.ctest 779 "# This is a generated file. 780MESSAGE(\"When testing is complete, review test output in the 781\\\"${PROJECT_BINARY_DIR}/Testing/Temporary\\\" folder.\") 782MESSAGE(\" \") 783") 784 785 FILE(WRITE ${PROJECT_BINARY_DIR}/pcre_test.sh 786 "#! /bin/sh 787# This is a generated file. 788srcdir=${PROJECT_SOURCE_DIR} 789pcretest=${PCRETEST_EXE} 790. ${PROJECT_SOURCE_DIR}/RunTest 791if test \"$?\" != \"0\"; then exit 1; fi 792# End 793") 794 795 IF(UNIX) 796 ADD_TEST(pcre_test sh ${PROJECT_BINARY_DIR}/pcre_test.sh) 797 ENDIF(UNIX) 798 799 IF(PCRE_BUILD_PCREGREP) 800 FILE(WRITE ${PROJECT_BINARY_DIR}/pcre_grep_test.sh 801 "#! /bin/sh 802# This is a generated file. 803srcdir=${PROJECT_SOURCE_DIR} 804pcregrep=${PCREGREP_EXE} 805pcretest=${PCRETEST_EXE} 806. ${PROJECT_SOURCE_DIR}/RunGrepTest 807if test \"$?\" != \"0\"; then exit 1; fi 808# End 809") 810 811 IF(UNIX) 812 ADD_TEST(pcre_grep_test sh ${PROJECT_BINARY_DIR}/pcre_grep_test.sh) 813 ENDIF(UNIX) 814 ENDIF(PCRE_BUILD_PCREGREP) 815 816 IF(WIN32) 817 # Provide environment for executing the bat file version of RunTest 818 FILE(TO_NATIVE_PATH ${PROJECT_SOURCE_DIR} winsrc) 819 FILE(TO_NATIVE_PATH ${PROJECT_BINARY_DIR} winbin) 820 FILE(TO_NATIVE_PATH ${PCRETEST_EXE} winexe) 821 822 FILE(WRITE ${PROJECT_BINARY_DIR}/pcre_test.bat 823 "\@REM This is a generated file. 824\@echo off 825setlocal 826SET srcdir=\"${winsrc}\" 827SET pcretest=\"${winexe}\" 828if not [%CMAKE_CONFIG_TYPE%]==[] SET pcretest=\"${winbin}\\%CMAKE_CONFIG_TYPE%\\pcretest.exe\" 829call %srcdir%\\RunTest.Bat 830if errorlevel 1 exit /b 1 831echo RunTest.bat tests successfully completed 832") 833 834 ADD_TEST(NAME pcre_test_bat 835 COMMAND pcre_test.bat) 836 SET_TESTS_PROPERTIES(pcre_test_bat PROPERTIES 837 PASS_REGULAR_EXPRESSION "RunTest\\.bat tests successfully completed") 838 839 IF("$ENV{OSTYPE}" STREQUAL "msys") 840 # Both the sh and bat file versions of RunTest are run if make test is used 841 # in msys 842 ADD_TEST(pcre_test_sh sh.exe ${PROJECT_BINARY_DIR}/pcre_test.sh) 843 IF(PCRE_BUILD_PCREGREP) 844 ADD_TEST(pcre_grep_test sh.exe ${PROJECT_BINARY_DIR}/pcre_grep_test.sh) 845 ENDIF(PCRE_BUILD_PCREGREP) 846 ENDIF("$ENV{OSTYPE}" STREQUAL "msys") 847 848 ENDIF(WIN32) 849 850 # Changed to accommodate testing whichever location was just built 851 852 IF(PCRE_SUPPORT_JIT) 853 ADD_TEST(pcre_jit_test pcre_jit_test) 854 ENDIF(PCRE_SUPPORT_JIT) 855 856 IF(PCRE_BUILD_PCRECPP) 857 ADD_TEST(pcrecpp_test pcrecpp_unittest) 858 ADD_TEST(pcre_scanner_test pcre_scanner_unittest) 859 ADD_TEST(pcre_stringpiece_test pcre_stringpiece_unittest) 860 ENDIF(PCRE_BUILD_PCRECPP) 861 862ENDIF(PCRE_BUILD_TESTS) 863 864# Installation 865SET(CMAKE_INSTALL_ALWAYS 1) 866 867INSTALL(TARGETS ${targets} 868 RUNTIME DESTINATION bin 869 LIBRARY DESTINATION lib 870 ARCHIVE DESTINATION lib) 871 872INSTALL(FILES ${PCRE_HEADERS} ${PCREPOSIX_HEADERS} DESTINATION include) 873 874FILE(GLOB html ${PROJECT_SOURCE_DIR}/doc/html/*.html) 875FILE(GLOB man1 ${PROJECT_SOURCE_DIR}/doc/*.1) 876FILE(GLOB man3 ${PROJECT_SOURCE_DIR}/doc/*.3) 877 878IF(PCRE_BUILD_PCRECPP) 879 INSTALL(FILES ${PCRECPP_HEADERS} DESTINATION include) 880ELSE(PCRE_BUILD_PCRECPP) 881 # Remove pcrecpp.3 882 FOREACH(man ${man3}) 883 GET_FILENAME_COMPONENT(man_tmp ${man} NAME) 884 IF(NOT man_tmp STREQUAL "pcrecpp.3") 885 SET(man3_new ${man3} ${man}) 886 ENDIF(NOT man_tmp STREQUAL "pcrecpp.3") 887 ENDFOREACH(man ${man3}) 888 SET(man3 ${man3_new}) 889ENDIF(PCRE_BUILD_PCRECPP) 890 891INSTALL(FILES ${man1} DESTINATION man/man1) 892INSTALL(FILES ${man3} DESTINATION man/man3) 893INSTALL(FILES ${html} DESTINATION share/doc/pcre/html) 894 895IF(MSVC AND INSTALL_MSVC_PDB) 896 INSTALL(FILES ${PROJECT_BINARY_DIR}/pcre.pdb 897 ${PROJECT_BINARY_DIR}/pcreposix.pdb 898 DESTINATION bin 899 CONFIGURATIONS RelWithDebInfo) 900 INSTALL(FILES ${PROJECT_BINARY_DIR}/pcred.pdb 901 ${PROJECT_BINARY_DIR}/pcreposixd.pdb 902 DESTINATION bin 903 CONFIGURATIONS Debug) 904ENDIF(MSVC AND INSTALL_MSVC_PDB) 905 906# help, only for nice output 907IF(BUILD_SHARED_LIBS) 908 SET(BUILD_STATIC_LIBS OFF) 909ELSE(BUILD_SHARED_LIBS) 910 SET(BUILD_STATIC_LIBS ON) 911ENDIF(BUILD_SHARED_LIBS) 912 913IF(PCRE_SHOW_REPORT) 914 STRING(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype) 915 IF (CMAKE_C_FLAGS) 916 SET(cfsp " ") 917 ENDIF(CMAKE_C_FLAGS) 918 IF (CMAKE_CXX_FLAGS) 919 SET(cxxfsp " ") 920 ENDIF(CMAKE_CXX_FLAGS) 921 MESSAGE(STATUS "") 922 MESSAGE(STATUS "") 923 MESSAGE(STATUS "PCRE configuration summary:") 924 MESSAGE(STATUS "") 925 MESSAGE(STATUS " Install prefix .................. : ${CMAKE_INSTALL_PREFIX}") 926 MESSAGE(STATUS " C compiler ...................... : ${CMAKE_C_COMPILER}") 927 MESSAGE(STATUS " C++ compiler .................... : ${CMAKE_CXX_COMPILER}") 928 MESSAGE(STATUS " C compiler flags ................ : ${CMAKE_C_FLAGS}${cfsp}${CMAKE_C_FLAGS_${buildtype}}") 929 MESSAGE(STATUS " C++ compiler flags .............. : ${CMAKE_CXX_FLAGS}${cxxfsp}${CMAKE_CXX_FLAGS_${buildtype}}") 930 MESSAGE(STATUS "") 931 MESSAGE(STATUS " Build 8 bit PCRE library ........ : ${PCRE_BUILD_PCRE8}") 932 MESSAGE(STATUS " Build 16 bit PCRE library ....... : ${PCRE_BUILD_PCRE16}") 933 MESSAGE(STATUS " Build 32 bit PCRE library ....... : ${PCRE_BUILD_PCRE32}") 934 MESSAGE(STATUS " Build C++ library ............... : ${PCRE_BUILD_PCRECPP}") 935 MESSAGE(STATUS " Enable JIT compiling support .... : ${PCRE_SUPPORT_JIT}") 936 MESSAGE(STATUS " Enable UTF support .............. : ${PCRE_SUPPORT_UTF}") 937 MESSAGE(STATUS " Unicode properties .............. : ${PCRE_SUPPORT_UNICODE_PROPERTIES}") 938 MESSAGE(STATUS " Newline char/sequence ........... : ${PCRE_NEWLINE}") 939 MESSAGE(STATUS " \\R matches only ANYCRLF ......... : ${PCRE_SUPPORT_BSR_ANYCRLF}") 940 MESSAGE(STATUS " EBCDIC coding ................... : ${PCRE_EBCDIC}") 941 MESSAGE(STATUS " EBCDIC coding with NL=0x25 ...... : ${PCRE_EBCDIC_NL25}") 942 MESSAGE(STATUS " Rebuild char tables ............. : ${PCRE_REBUILD_CHARTABLES}") 943 MESSAGE(STATUS " No stack recursion .............. : ${PCRE_NO_RECURSE}") 944 MESSAGE(STATUS " POSIX mem threshold ............. : ${PCRE_POSIX_MALLOC_THRESHOLD}") 945 MESSAGE(STATUS " Internal link size .............. : ${PCRE_LINK_SIZE}") 946 MESSAGE(STATUS " Parentheses nest limit .......... : ${PCRE_PARENS_NEST_LIMIT}") 947 MESSAGE(STATUS " Match limit ..................... : ${PCRE_MATCH_LIMIT}") 948 MESSAGE(STATUS " Match limit recursion ........... : ${PCRE_MATCH_LIMIT_RECURSION}") 949 MESSAGE(STATUS " Build shared libs ............... : ${BUILD_SHARED_LIBS}") 950 MESSAGE(STATUS " Build static libs ............... : ${BUILD_STATIC_LIBS}") 951 MESSAGE(STATUS " Build pcregrep .................. : ${PCRE_BUILD_PCREGREP}") 952 MESSAGE(STATUS " Enable JIT in pcregrep .......... : ${PCRE_SUPPORT_PCREGREP_JIT}") 953 MESSAGE(STATUS " Buffer size for pcregrep ........ : ${PCREGREP_BUFSIZE}") 954 MESSAGE(STATUS " Build tests (implies pcretest .. : ${PCRE_BUILD_TESTS}") 955 MESSAGE(STATUS " and pcregrep)") 956 IF(ZLIB_FOUND) 957 MESSAGE(STATUS " Link pcregrep with libz ......... : ${PCRE_SUPPORT_LIBZ}") 958 ELSE(ZLIB_FOUND) 959 MESSAGE(STATUS " Link pcregrep with libz ......... : Library not found" ) 960 ENDIF(ZLIB_FOUND) 961 IF(BZIP2_FOUND) 962 MESSAGE(STATUS " Link pcregrep with libbz2 ....... : ${PCRE_SUPPORT_LIBBZ2}") 963 ELSE(BZIP2_FOUND) 964 MESSAGE(STATUS " Link pcregrep with libbz2 ....... : Library not found" ) 965 ENDIF(BZIP2_FOUND) 966 IF(EDITLINE_FOUND) 967 MESSAGE(STATUS " Link pcretest with libeditline .. : ${PCRE_SUPPORT_LIBEDIT}") 968 ELSE(EDITLINE_FOUND) 969 MESSAGE(STATUS " Link pcretest with libeditline .. : Library not found" ) 970 ENDIF(EDITLINE_FOUND) 971 IF(READLINE_FOUND) 972 MESSAGE(STATUS " Link pcretest with libreadline .. : ${PCRE_SUPPORT_LIBREADLINE}") 973 ELSE(READLINE_FOUND) 974 MESSAGE(STATUS " Link pcretest with libreadline .. : Library not found" ) 975 ENDIF(READLINE_FOUND) 976 MESSAGE(STATUS " Support Valgrind .................: ${PCRE_SUPPORT_VALGRIND}") 977 MESSAGE(STATUS " Support coverage .................: ${PCRE_SUPPORT_COVERAGE}") 978 979 IF(MINGW AND NOT PCRE_STATIC) 980 MESSAGE(STATUS " Non-standard dll names (prefix) . : ${NON_STANDARD_LIB_PREFIX}") 981 MESSAGE(STATUS " Non-standard dll names (suffix) . : ${NON_STANDARD_LIB_SUFFIX}") 982 ENDIF(MINGW AND NOT PCRE_STATIC) 983 984 IF(MSVC) 985 MESSAGE(STATUS " Install MSVC .pdb files ..........: ${INSTALL_MSVC_PDB}") 986 ENDIF(MSVC) 987 988 MESSAGE(STATUS "") 989ENDIF(PCRE_SHOW_REPORT) 990 991# end CMakeLists.txt 992