41 |
# 2011-08-22 PH added PCRE_SUPPORT_JIT |
# 2011-08-22 PH added PCRE_SUPPORT_JIT |
42 |
# 2011-09-06 PH modified WIN32 ADD_TEST line as suggested by Sergey Cherepanov |
# 2011-09-06 PH modified WIN32 ADD_TEST line as suggested by Sergey Cherepanov |
43 |
# 2011-09-06 PH added PCRE_SUPPORT_PCREGREP_JIT |
# 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 |
|
|
55 |
PROJECT(PCRE C CXX) |
PROJECT(PCRE C CXX) |
56 |
|
|
57 |
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6) |
# Increased minimum to 2.8.0 to support newer add_test features |
58 |
|
|
59 |
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0) |
60 |
|
|
61 |
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake |
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake |
62 |
|
|
356 |
pcre_xclass.c |
pcre_xclass.c |
357 |
) |
) |
358 |
|
|
359 |
|
|
360 |
SET(PCREPOSIX_HEADERS pcreposix.h) |
SET(PCREPOSIX_HEADERS pcreposix.h) |
361 |
|
|
362 |
SET(PCREPOSIX_SOURCES pcreposix.c) |
SET(PCREPOSIX_SOURCES pcreposix.c) |
363 |
|
|
364 |
|
IF(MINGW AND NOT PCRE_STATIC) |
365 |
|
IF (EXISTS ${PROJECT_SOURCE_DIR}/pcre.rc) |
366 |
|
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/pcre.o |
367 |
|
PRE-LINK |
368 |
|
COMMAND windres ARGS pcre.rc pcre.o |
369 |
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} |
370 |
|
COMMENT Using pcre coff info in mingw build) |
371 |
|
SET(PCRE_SOURCES |
372 |
|
${PCRE_SOURCES} ${PROJECT_SOURCE_DIR}/pcre.o |
373 |
|
) |
374 |
|
ENDIF(EXISTS ${PROJECT_SOURCE_DIR}/pcre.rc) |
375 |
|
IF (EXISTS ${PROJECT_SOURCE_DIR}/pcreposix.rc) |
376 |
|
ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_SOURCE_DIR}/pcreposix.o |
377 |
|
PRE-LINK |
378 |
|
COMMAND windres ARGS pcreposix.rc pcreposix.o |
379 |
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} |
380 |
|
COMMENT Using pcreposix coff info in mingw build) |
381 |
|
SET(PCREPOSIX_SOURCES |
382 |
|
${PCREPOSIX_SOURCES} ${PROJECT_SOURCE_DIR}/pcreposix.o |
383 |
|
) |
384 |
|
ENDIF(EXISTS ${PROJECT_SOURCE_DIR}/pcreposix.rc) |
385 |
|
ENDIF(MINGW AND NOT PCRE_STATIC) |
386 |
|
|
387 |
SET(PCRECPP_HEADERS |
SET(PCRECPP_HEADERS |
388 |
pcrecpp.h |
pcrecpp.h |
389 |
pcre_scanner.h |
pcre_scanner.h |
469 |
# SET_TARGET_PROPERTIES(pcredemo PROPERTIES COMPILE_FLAGS "-DPCRE_STATIC") |
# SET_TARGET_PROPERTIES(pcredemo PROPERTIES COMPILE_FLAGS "-DPCRE_STATIC") |
470 |
# ENDIF(NOT BUILD_SHARED_LIBS) |
# ENDIF(NOT BUILD_SHARED_LIBS) |
471 |
|
|
472 |
IF(PCRE_BUILD_PCREGREP) |
IF(PCRE_BUILD_PCREGREP OR PCRE_BUILD_TESTS) |
473 |
ADD_EXECUTABLE(pcregrep pcregrep.c) |
ADD_EXECUTABLE(pcregrep pcregrep.c) |
474 |
SET(targets ${targets} pcregrep) |
SET(targets ${targets} pcregrep) |
475 |
TARGET_LINK_LIBRARIES(pcregrep pcreposix ${PCREGREP_LIBS}) |
TARGET_LINK_LIBRARIES(pcregrep pcreposix ${PCREGREP_LIBS}) |
476 |
ENDIF(PCRE_BUILD_PCREGREP) |
ENDIF(PCRE_BUILD_PCREGREP OR PCRE_BUILD_TESTS) |
|
|
|
477 |
|
|
478 |
# Testing |
# Testing |
479 |
IF(PCRE_BUILD_TESTS) |
IF(PCRE_BUILD_TESTS) |
508 |
TARGET_LINK_LIBRARIES(pcre_stringpiece_unittest pcrecpp) |
TARGET_LINK_LIBRARIES(pcre_stringpiece_unittest pcrecpp) |
509 |
ENDIF(PCRE_BUILD_PCRECPP) |
ENDIF(PCRE_BUILD_PCRECPP) |
510 |
|
|
511 |
|
# exes in Debug location tested by the RunTest shell script |
512 |
|
# via "make test" |
513 |
GET_TARGET_PROPERTY(PCREGREP_EXE pcregrep DEBUG_LOCATION) |
GET_TARGET_PROPERTY(PCREGREP_EXE pcregrep DEBUG_LOCATION) |
514 |
GET_TARGET_PROPERTY(PCRETEST_EXE pcretest DEBUG_LOCATION) |
GET_TARGET_PROPERTY(PCRETEST_EXE pcretest DEBUG_LOCATION) |
515 |
|
|
516 |
# Write out a CTest configuration file that sets some needed environment |
# ================================================= |
517 |
# variables for the test scripts. |
# Write out a CTest configuration file |
518 |
# |
# |
519 |
FILE(WRITE ${PROJECT_BINARY_DIR}/CTestCustom.ctest |
FILE(WRITE ${PROJECT_BINARY_DIR}/CTestCustom.ctest |
520 |
"# This is a generated file. |
"# This is a generated file. |
521 |
SET(ENV{srcdir} ${PROJECT_SOURCE_DIR}) |
MESSAGE(\"When testing is complete, review test output in the |
522 |
SET(ENV{pcregrep} ${PCREGREP_EXE}) |
${PROJECT_BINARY_DIR}/Testing/Temporary folder.\") |
523 |
SET(ENV{pcretest} ${PCRETEST_EXE}) |
MESSAGE(\"\") |
524 |
") |
") |
525 |
|
|
526 |
|
FILE(WRITE ${PROJECT_BINARY_DIR}/pcre_test.sh |
527 |
|
"#! /bin/sh |
528 |
|
# This is a generated file. |
529 |
|
srcdir=${PROJECT_SOURCE_DIR} |
530 |
|
pcregrep=${PCREGREP_EXE} |
531 |
|
pcretest=${PCRETEST_EXE} |
532 |
|
source ${PROJECT_SOURCE_DIR}/RunTest |
533 |
|
if test \"$?\" != \"0\"; then exit 1; fi |
534 |
|
# End |
535 |
|
") |
536 |
|
|
537 |
|
FILE(WRITE ${PROJECT_BINARY_DIR}/pcre_grep_test.sh |
538 |
|
"#! /bin/sh |
539 |
|
# This is a generated file. |
540 |
|
srcdir=${PROJECT_SOURCE_DIR} |
541 |
|
pcregrep=${PCREGREP_EXE} |
542 |
|
pcretest=${PCRETEST_EXE} |
543 |
|
source ${PROJECT_SOURCE_DIR}/RunGrepTest |
544 |
|
if test \"$?\" != \"0\"; then exit 1; fi |
545 |
|
# End |
546 |
|
") |
547 |
|
|
548 |
IF(UNIX) |
IF(UNIX) |
549 |
ADD_TEST(pcre_test ${PROJECT_SOURCE_DIR}/RunTest) |
ADD_TEST(pcre_test ${PROJECT_BINARY_DIR}/pcre_test.sh) |
550 |
ADD_TEST(pcre_grep_test ${PROJECT_SOURCE_DIR}/RunGrepTest) |
ADD_TEST(pcre_grep_test ${PROJECT_BINARY_DIR}/pcre_grep_test.sh) |
551 |
ENDIF(UNIX) |
ENDIF(UNIX) |
552 |
|
|
553 |
IF(WIN32) |
IF(WIN32) |
554 |
|
# Provide environment for executing the bat file version of RunTest |
555 |
|
string(REPLACE "/" "\\" winsrc "${PROJECT_SOURCE_DIR}") |
556 |
|
|
557 |
|
FILE(WRITE ${PROJECT_BINARY_DIR}/pcre_test.txt |
558 |
|
"\@REM This is a generated file. |
559 |
|
\@Echo off |
560 |
|
setlocal |
561 |
|
SET\ srcdir=\${srcdir} |
562 |
|
SET\ pcretest=\${pcretest} |
563 |
|
SET\ pcregrep=\${pcregrep} |
564 |
|
call \"\${srcdir}\\RunTest.Bat\" |
565 |
|
if errorlevel 1 exit /b 1 |
566 |
|
echo RunTest.bat tests successfully completed |
567 |
|
") |
568 |
|
|
569 |
|
FILE(WRITE ${PROJECT_BINARY_DIR}/BatDriver.cmake |
570 |
|
"# This is a generated file. |
571 |
|
# this script is run with arguments via the cmake command in add_test(NAME pcre_test_bat) |
572 |
|
# BatDriver feeds the actual location of pcretest.exe and pcregrep.exe |
573 |
|
FILE(TO_NATIVE_PATH \${pcretestx} pcretest) |
574 |
|
FILE(TO_NATIVE_PATH \${pcregrepx} pcregrep) |
575 |
|
FILE(TO_NATIVE_PATH \${srcdirx} srcdir) |
576 |
|
configure_file(\"\${bindirx}/pcre_test.txt\" \"\${bindirx}/pcre_test.bat\") |
577 |
|
# MESSAGE(\"cmake\ variable\ pcretest\ is\ \${pcretest}\") |
578 |
|
# MESSAGE(\"cmake\ variable\ pcregrep\ is\ \${pcregrep}\") |
579 |
|
# STRING(REPLACE \" \" \"\\ \" bindir \${bindirx}) |
580 |
|
MESSAGE(\"COMMAND pcre_test.bat \") |
581 |
|
EXECUTE_PROCESS(COMMAND pcre_test.bat |
582 |
|
WORKING_DIRECTORY . |
583 |
|
OUTPUT_VARIABLE batoutput) |
584 |
|
MESSAGE(\"OUTPUT: \${batoutput}\") |
585 |
|
") |
586 |
|
|
587 |
|
ADD_TEST(NAME pcre_test_bat |
588 |
|
COMMAND ${CMAKE_COMMAND} -D bindirx=${PROJECT_BINARY_DIR} -D srcdirx=${PROJECT_SOURCE_DIR} -D pcretestx=$<TARGET_FILE:pcretest> -D pcregrepx=$<TARGET_FILE:pcregrep> -P "${PROJECT_BINARY_DIR}/BatDriver.cmake") |
589 |
|
SET_TESTS_PROPERTIES(pcre_test_bat PROPERTIES |
590 |
|
PASS_REGULAR_EXPRESSION "RunTest\\.bat tests successfully completed") |
591 |
|
|
592 |
IF("$ENV{OSTYPE}" STREQUAL "msys") |
IF("$ENV{OSTYPE}" STREQUAL "msys") |
593 |
ADD_TEST(pcre_test sh ${PROJECT_SOURCE_DIR}/RunTest) |
# Both the sh and bat file versions of RunTest are run if make test is used |
594 |
ADD_TEST(pcre_grep_test sh ${PROJECT_SOURCE_DIR}/RunGrepTest) |
# in msys |
595 |
ELSE("$ENV{OSTYPE}" STREQUAL "msys") |
|
596 |
# ADD_TEST(pcre_test cmd /C ${PROJECT_SOURCE_DIR}/RunTest.bat) |
ADD_TEST(pcre_test_sh sh.exe ${PROJECT_BINARY_DIR}/pcre_test.sh) |
597 |
ADD_TEST(pcre_test ${PROJECT_SOURCE_DIR}/RunTest.bat) |
ADD_TEST(pcre_grep_test sh.exe ${PROJECT_BINARY_DIR}/pcre_grep_test.sh) |
598 |
|
|
599 |
ENDIF("$ENV{OSTYPE}" STREQUAL "msys") |
ENDIF("$ENV{OSTYPE}" STREQUAL "msys") |
600 |
ENDIF(WIN32) |
ENDIF(WIN32) |
601 |
|
|
602 |
IF(PCRE_SUPPORT_JIT) |
# Changed to accommodate testing whichever location was just built |
|
GET_TARGET_PROPERTY(PCRE_JIT_TEST_EXE |
|
|
pcre_jit_test |
|
|
DEBUG_LOCATION) |
|
|
ENDIF(PCRE_SUPPORT_JIT) |
|
|
|
|
|
GET_TARGET_PROPERTY(PCRECPP_UNITTEST_EXE |
|
|
pcrecpp_unittest |
|
|
DEBUG_LOCATION) |
|
|
|
|
|
GET_TARGET_PROPERTY(PCRE_SCANNER_UNITTEST_EXE |
|
|
pcre_scanner_unittest |
|
|
DEBUG_LOCATION) |
|
|
|
|
|
GET_TARGET_PROPERTY(PCRE_STRINGPIECE_UNITTEST_EXE |
|
|
pcre_stringpiece_unittest |
|
|
DEBUG_LOCATION) |
|
603 |
|
|
604 |
IF(PCRE_SUPPORT_JIT) |
IF(PCRE_SUPPORT_JIT) |
605 |
ADD_TEST(pcre_jit_test ${PCRE_JIT_TEST_EXE}) |
ADD_TEST(pcre_jit_test pcre_jit_test) |
606 |
ENDIF(PCRE_SUPPORT_JIT) |
ENDIF(PCRE_SUPPORT_JIT) |
607 |
|
|
608 |
ADD_TEST(pcrecpp_test ${PCRECPP_UNITTEST_EXE}) |
IF(PCRE_BUILD_PCRECPP) |
609 |
ADD_TEST(pcre_scanner_test ${PCRE_SCANNER_UNITTEST_EXE}) |
ADD_TEST(pcrecpp_test pcrecpp_unittest) |
610 |
ADD_TEST(pcre_stringpiece_test ${PCRE_STRINGPIECE_UNITTEST_EXE}) |
ADD_TEST(pcre_scanner_test pcre_scanner_unittest) |
611 |
|
ADD_TEST(pcre_stringpiece_test pcre_stringpiece_unittest) |
612 |
|
|
613 |
|
ENDIF(PCRE_BUILD_PCRECPP) |
614 |
ENDIF(PCRE_BUILD_TESTS) |
ENDIF(PCRE_BUILD_TESTS) |
615 |
|
|
616 |
# Installation |
# Installation |
640 |
SET(man3 ${man3_new}) |
SET(man3 ${man3_new}) |
641 |
ENDIF(PCRE_BUILD_PCRECPP) |
ENDIF(PCRE_BUILD_PCRECPP) |
642 |
|
|
|
|
|
643 |
INSTALL(FILES ${man1} DESTINATION man/man1) |
INSTALL(FILES ${man1} DESTINATION man/man1) |
644 |
INSTALL(FILES ${man3} DESTINATION man/man3) |
INSTALL(FILES ${man3} DESTINATION man/man3) |
645 |
INSTALL(FILES ${html} DESTINATION share/doc/pcre/html) |
INSTALL(FILES ${html} DESTINATION share/doc/pcre/html) |
687 |
MESSAGE(STATUS " Build pcregrep .................. : ${PCRE_BUILD_PCREGREP}") |
MESSAGE(STATUS " Build pcregrep .................. : ${PCRE_BUILD_PCREGREP}") |
688 |
MESSAGE(STATUS " Enable JIT in pcregrep .......... : ${PCRE_SUPPORT_PCREGREP_JIT}") |
MESSAGE(STATUS " Enable JIT in pcregrep .......... : ${PCRE_SUPPORT_PCREGREP_JIT}") |
689 |
MESSAGE(STATUS " Buffer size for pcregrep ........ : ${PCREGREP_BUFSIZE}") |
MESSAGE(STATUS " Buffer size for pcregrep ........ : ${PCREGREP_BUFSIZE}") |
690 |
MESSAGE(STATUS " Build tests (implies pcretest) .. : ${PCRE_BUILD_TESTS}") |
MESSAGE(STATUS " Build tests (implies pcretest .. : ${PCRE_BUILD_TESTS}") |
691 |
|
MESSAGE(STATUS " and pcregrep)") |
692 |
IF(ZLIB_FOUND) |
IF(ZLIB_FOUND) |
693 |
MESSAGE(STATUS " Link pcregrep with libz ......... : ${PCRE_SUPPORT_LIBZ}") |
MESSAGE(STATUS " Link pcregrep with libz ......... : ${PCRE_SUPPORT_LIBZ}") |
694 |
ELSE(ZLIB_FOUND) |
ELSE(ZLIB_FOUND) |