[Pcre-svn] [407] code/trunk: Upgrade CMake support to disabl…

Página Inicial
Delete this message
Autor: Subversion repository
Data:  
Para: pcre-svn
Assunto: [Pcre-svn] [407] code/trunk: Upgrade CMake support to disable tests, pcregrep, and configuration listing.
Revision: 407
          http://vcs.pcre.org/viewvc?view=rev&revision=407
Author:   ph10
Date:     2009-03-23 15:29:18 +0000 (Mon, 23 Mar 2009)


Log Message:
-----------
Upgrade CMake support to disable tests, pcregrep, and configuration listing.

Modified Paths:
--------------
    code/trunk/CMakeLists.txt
    code/trunk/ChangeLog


Modified: code/trunk/CMakeLists.txt
===================================================================
--- code/trunk/CMakeLists.txt    2009-03-23 12:05:43 UTC (rev 406)
+++ code/trunk/CMakeLists.txt    2009-03-23 15:29:18 UTC (rev 407)
@@ -27,9 +27,12 @@
 # 2008-01-23 PH removed the automatic build of pcredemo.
 # 2008-04-22 PH modified READLINE support so it finds NCURSES when needed.
 # 2008-07-03 PH updated for revised UCP property support (change of files)
-# 2009-03-23 PH applied  Steven Van Ingelgem's patch to change the name
+# 2009-03-23 PH applied Steven Van Ingelgem's patch to change the name
 #            CMAKE_BINARY_DIR to PROJECT_BINARY_DIR so that it works when PCRE
 #            is included within another project.
+# 2009-03-23 PH applied a modified version of Steven Van Ingelgem's patches to
+#            add options to stop the building of pcregrep and the tests, and
+#            to disable the final configuration report.


PROJECT(PCRE C CXX)

@@ -108,7 +111,17 @@
 SET(PCRE_SUPPORT_BSR_ANYCRLF OFF CACHE BOOL
     "ON=Backslash-R matches only LF CR and CRLF, OFF=Backslash-R matches all Unicode Linebreaks")


+OPTION(PCRE_SHOW_REPORT    "Show the final configuration report" ON)
+OPTION(PCRE_BUILD_PCREGREP "Build pcregrep" ON)
+OPTION(PCRE_BUILD_TESTS    "Build the tests" ON)


+IF (PCRE_BUILD_TESTS)
+  IF (NOT PCRE_BUILD_PCREGREP)
+    MESSAGE(STATUS "** Building tests requires pcregrep: PCRE_BUILD_PCREGREP forced ON") 
+    SET(PCRE_BUILD_PCREGREP ON)
+  ENDIF(NOT PCRE_BUILD_PCREGREP)   
+ENDIF(PCRE_BUILD_TESTS)   
+
 IF (MINGW)
   OPTION(NON_STANDARD_LIB_PREFIX
          "ON=Shared libraries built in mingw will be named pcre.dll, etc., instead of libpcre.dll, etc."
@@ -335,10 +348,14 @@
   SET(CMAKE_DEBUG_POSTFIX "d")
 ENDIF(WIN32)


+SET(targets)
+
# Libraries
# pcre
ADD_LIBRARY(pcre ${PCRE_HEADERS} ${PCRE_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
+SET(targets ${targets} pcre)
ADD_LIBRARY(pcreposix ${PCREPOSIX_HEADERS} ${PCREPOSIX_SOURCES})
+SET(targets ${targets} pcreposix)
TARGET_LINK_LIBRARIES(pcreposix pcre)
IF(MINGW AND NOT PCRE_STATIC)
IF(NON_STANDARD_LIB_PREFIX)
@@ -358,6 +375,7 @@
# pcrecpp
IF(PCRE_BUILD_PCRECPP)
ADD_LIBRARY(pcrecpp ${PCRECPP_HEADERS} ${PCRECPP_SOURCES})
+SET(targets ${targets} pcrecpp)
TARGET_LINK_LIBRARIES(pcrecpp pcre)

IF(MINGW AND NOT PCRE_STATIC)
@@ -378,12 +396,6 @@

# Executables

-ADD_EXECUTABLE(pcretest pcretest.c)
-TARGET_LINK_LIBRARIES(pcretest pcreposix ${PCRETEST_LIBS})
-
-ADD_EXECUTABLE(pcregrep pcregrep.c)
-TARGET_LINK_LIBRARIES(pcregrep pcreposix ${PCREGREP_LIBS})
-
 # Removed by PH (2008-01-23) because pcredemo shouldn't really be built
 # automatically, and it gave trouble in some environments anyway.
 # ADD_EXECUTABLE(pcredemo pcredemo.c)
@@ -393,69 +405,83 @@
 #         SET_TARGET_PROPERTIES(pcredemo PROPERTIES COMPILE_FLAGS "-DPCRE_STATIC")
 # ENDIF(NOT BUILD_SHARED_LIBS)


-IF(PCRE_BUILD_PCRECPP)
-        ADD_EXECUTABLE(pcrecpp_unittest pcrecpp_unittest.cc)
-        TARGET_LINK_LIBRARIES(pcrecpp_unittest pcrecpp)
-IF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC)
-SET_TARGET_PROPERTIES(pcrecpp
-                        PROPERTIES PREFIX ""
-)
-ENDIF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC)
+IF(PCRE_BUILD_PCREGREP)
+  ADD_EXECUTABLE(pcregrep pcregrep.c)
+  SET(targets ${targets} pcregrep)
+  TARGET_LINK_LIBRARIES(pcregrep pcreposix ${PCREGREP_LIBS})
+ENDIF(PCRE_BUILD_PCREGREP)



-        ADD_EXECUTABLE(pcre_scanner_unittest pcre_scanner_unittest.cc)
-        TARGET_LINK_LIBRARIES(pcre_scanner_unittest pcrecpp)
+# Testing
+IF(PCRE_BUILD_TESTS)
+  ENABLE_TESTING()


-        ADD_EXECUTABLE(pcre_stringpiece_unittest pcre_stringpiece_unittest.cc)
-        TARGET_LINK_LIBRARIES(pcre_stringpiece_unittest pcrecpp)
-ENDIF(PCRE_BUILD_PCRECPP)
+  ADD_EXECUTABLE(pcretest pcretest.c)
+  SET(targets ${targets} pcretest)
+  TARGET_LINK_LIBRARIES(pcretest pcreposix ${PCRETEST_LIBS})


-# Testing
+  IF(PCRE_BUILD_PCRECPP)
+    ADD_EXECUTABLE(pcrecpp_unittest pcrecpp_unittest.cc)
+    SET(targets ${targets} pcrecpp_unittest)
+    TARGET_LINK_LIBRARIES(pcrecpp_unittest pcrecpp)
+    IF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC)
+      SET_TARGET_PROPERTIES(pcrecpp
+                        PROPERTIES PREFIX ""
+      )
+    ENDIF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC)


-ENABLE_TESTING()

-GET_TARGET_PROPERTY(PCREGREP_EXE pcregrep DEBUG_LOCATION)
-GET_TARGET_PROPERTY(PCRETEST_EXE pcretest DEBUG_LOCATION)
+    ADD_EXECUTABLE(pcre_scanner_unittest pcre_scanner_unittest.cc)
+    SET(targets ${targets} pcre_scanner_unittest)
+    TARGET_LINK_LIBRARIES(pcre_scanner_unittest pcrecpp)


-# Write out a CTest configuration file that sets some needed environment
-# variables for the test scripts.
-#
-FILE(WRITE ${PROJECT_BINARY_DIR}/CTestCustom.ctest
-"# This is a generated file.
-SET(ENV{srcdir} ${PROJECT_SOURCE_DIR})
-SET(ENV{pcregrep} ${PCREGREP_EXE})
-SET(ENV{pcretest} ${PCRETEST_EXE})
-")
+    ADD_EXECUTABLE(pcre_stringpiece_unittest pcre_stringpiece_unittest.cc)
+    SET(targets ${targets} pcre_stringpiece_unittest)
+    TARGET_LINK_LIBRARIES(pcre_stringpiece_unittest pcrecpp)
+  ENDIF(PCRE_BUILD_PCRECPP)


-IF(UNIX)
-        ADD_TEST(pcre_test      ${PROJECT_SOURCE_DIR}/RunTest)
-        ADD_TEST(pcre_grep_test ${PROJECT_SOURCE_DIR}/RunGrepTest)
-ENDIF(UNIX)
-IF(WIN32)
-        ADD_TEST(pcre_test cmd /C ${PROJECT_SOURCE_DIR}/RunTest.bat)
-ENDIF(WIN32)
+  GET_TARGET_PROPERTY(PCREGREP_EXE pcregrep DEBUG_LOCATION)
+  GET_TARGET_PROPERTY(PCRETEST_EXE pcretest DEBUG_LOCATION)


-GET_TARGET_PROPERTY(PCRECPP_UNITTEST_EXE
-                    pcrecpp_unittest
-                    DEBUG_LOCATION)
+  # Write out a CTest configuration file that sets some needed environment
+  # variables for the test scripts.
+  #
+  FILE(WRITE ${PROJECT_BINARY_DIR}/CTestCustom.ctest
+  "# This is a generated file.
+  SET(ENV{srcdir} ${PROJECT_SOURCE_DIR})
+  SET(ENV{pcregrep} ${PCREGREP_EXE})
+  SET(ENV{pcretest} ${PCRETEST_EXE})
+  ")


-GET_TARGET_PROPERTY(PCRE_SCANNER_UNITTEST_EXE
-                    pcre_scanner_unittest
-                    DEBUG_LOCATION)
+  IF(UNIX)
+          ADD_TEST(pcre_test      ${PROJECT_SOURCE_DIR}/RunTest)
+          ADD_TEST(pcre_grep_test ${PROJECT_SOURCE_DIR}/RunGrepTest)
+  ENDIF(UNIX)
+  IF(WIN32)
+          ADD_TEST(pcre_test cmd /C ${PROJECT_SOURCE_DIR}/RunTest.bat)
+  ENDIF(WIN32)


-GET_TARGET_PROPERTY(PCRE_STRINGPIECE_UNITTEST_EXE
-                    pcre_stringpiece_unittest
-                    DEBUG_LOCATION)
+  GET_TARGET_PROPERTY(PCRECPP_UNITTEST_EXE
+                      pcrecpp_unittest
+                      DEBUG_LOCATION)


-ADD_TEST(pcrecpp_test          ${PCRECPP_UNITTEST_EXE})
-ADD_TEST(pcre_scanner_test     ${PCRE_SCANNER_UNITTEST_EXE})
-ADD_TEST(pcre_stringpiece_test ${PCRE_STRINGPIECE_UNITTEST_EXE})
+  GET_TARGET_PROPERTY(PCRE_SCANNER_UNITTEST_EXE
+                      pcre_scanner_unittest
+                      DEBUG_LOCATION)


+  GET_TARGET_PROPERTY(PCRE_STRINGPIECE_UNITTEST_EXE
+                      pcre_stringpiece_unittest
+                      DEBUG_LOCATION)
+
+  ADD_TEST(pcrecpp_test          ${PCRECPP_UNITTEST_EXE})
+  ADD_TEST(pcre_scanner_test     ${PCRE_SCANNER_UNITTEST_EXE})
+  ADD_TEST(pcre_stringpiece_test ${PCRE_STRINGPIECE_UNITTEST_EXE})
+ENDIF(PCRE_BUILD_TESTS)
+
 # Installation
-
 SET(CMAKE_INSTALL_ALWAYS 1)


-INSTALL(TARGETS pcre pcreposix pcregrep pcretest
+INSTALL(TARGETS ${targets}
         RUNTIME DESTINATION bin
         LIBRARY DESTINATION lib
         ARCHIVE DESTINATION lib)
@@ -467,10 +493,6 @@
 FILE(GLOB man3 ${PROJECT_SOURCE_DIR}/doc/*.3)


 IF(PCRE_BUILD_PCRECPP)
-        INSTALL(TARGETS pcrecpp
-                RUNTIME DESTINATION bin
-                LIBRARY DESTINATION lib
-                ARCHIVE DESTINATION lib)
         INSTALL(FILES ${PCRECPP_HEADERS} DESTINATION include)
 ELSE(PCRE_BUILD_PCRECPP)
         # Remove pcrecpp.3
@@ -495,49 +517,53 @@
   SET(BUILD_STATIC_LIBS ON)
 ENDIF(BUILD_SHARED_LIBS)


-MESSAGE(STATUS "")
-MESSAGE(STATUS "")
-MESSAGE(STATUS "PCRE configuration summary:")
-MESSAGE(STATUS "")
-MESSAGE(STATUS "  Install prefix .................. : " ${CMAKE_INSTALL_PREFIX})
-MESSAGE(STATUS "  C compiler ...................... : " ${CMAKE_C_COMPILER})
-MESSAGE(STATUS "  C++ compiler .................... : " ${CMAKE_CXX_COMPILER})
-MESSAGE(STATUS "  C compiler flags ................ : " ${CMAKE_C_FLAGS})   #FIXME
-MESSAGE(STATUS "  C++ compiler flags .............. : " ${CMAKE_CXX_FLAGS}) #FIXME
-MESSAGE(STATUS "")
-MESSAGE(STATUS "  Build C++ library ............... : " ${PCRE_BUILD_PCRECPP})
-MESSAGE(STATUS "  Enable UTF-8 support ............ : " ${PCRE_SUPPORT_UNICODE_PROPERTIES})
-MESSAGE(STATUS "  Unicode properties .............. : " ${PCRE_SUPPORT_UNICODE_PROPERTIES})
-MESSAGE(STATUS "  Newline char/sequence ........... : " ${PCRE_NEWLINE})
-MESSAGE(STATUS "  \\R matches only ANYCRLF ......... : " ${PCRE_SUPPORT_BSR_ANYCRLF})
-MESSAGE(STATUS "  EBCDIC coding ................... : " ${PCRE_EBCDIC})
-MESSAGE(STATUS "  Rebuild char tables ............. : " ${PCRE_REBUILD_CHARTABLES})
-MESSAGE(STATUS "  No stack recursion .............. : " ${PCRE_NO_RECURSE})
-MESSAGE(STATUS "  POSIX mem threshold ............. : " ${PCRE_POSIX_MALLOC_THRESHOLD})
-MESSAGE(STATUS "  Internal link size .............. : " ${PCRE_LINK_SIZE})
-MESSAGE(STATUS "  Match limit ..................... : " ${PCRE_MATCH_LIMIT})
-MESSAGE(STATUS "  Match limit recursion ........... : " ${PCRE_MATCH_LIMIT_RECURSION})
-MESSAGE(STATUS "  Build shared libs ............... : " ${BUILD_SHARED_LIBS})
-MESSAGE(STATUS "  Build static libs ............... : " ${BUILD_STATIC_LIBS})
-IF(ZLIB_FOUND)
-  MESSAGE(STATUS "  Link pcregrep with libz ......... : " ${PCRE_SUPPORT_LIBZ})
-ELSE(ZLIB_FOUND)
-  MESSAGE(STATUS "  Link pcregrep with libz ......... : None" )
-ENDIF(ZLIB_FOUND)
-IF(BZIP2_FOUND)
-  MESSAGE(STATUS "  Link pcregrep with libbz2 ....... : " ${PCRE_SUPPORT_LIBBZ2})
-ELSE(BZIP2_FOUND)
-  MESSAGE(STATUS "  Link pcregrep with libbz2 ....... : None" )
-ENDIF(BZIP2_FOUND)
-IF(NOT PCRE_SUPPORT_LIBREADLINE)
-  MESSAGE(STATUS "  Link pcretest with libreadline .. : None" )
-ELSE(NOT PCRE_SUPPORT_LIBREADLINE)
-  MESSAGE(STATUS "  Link pcretest with libreadline .. : " ${PCRE_SUPPORT_LIBREADLINE})
-ENDIF(NOT PCRE_SUPPORT_LIBREADLINE)
-IF(MINGW AND NOT PCRE_STATIC)
-  MESSAGE(STATUS "  Non-standard dll names (prefix) . : " ${NON_STANDARD_LIB_PREFIX})
-  MESSAGE(STATUS "  Non-standard dll names (suffix) . : " ${NON_STANDARD_LIB_SUFFIX})
-ENDIF(MINGW AND NOT PCRE_STATIC)
-MESSAGE(STATUS "")
+IF(PCRE_SHOW_REPORT)
+  MESSAGE(STATUS "")
+  MESSAGE(STATUS "")
+  MESSAGE(STATUS "PCRE configuration summary:")
+  MESSAGE(STATUS "")
+  MESSAGE(STATUS "  Install prefix .................. : " ${CMAKE_INSTALL_PREFIX})
+  MESSAGE(STATUS "  C compiler ...................... : " ${CMAKE_C_COMPILER})
+  MESSAGE(STATUS "  C++ compiler .................... : " ${CMAKE_CXX_COMPILER})
+  MESSAGE(STATUS "  C compiler flags ................ : " ${CMAKE_C_FLAGS})   #FIXME
+  MESSAGE(STATUS "  C++ compiler flags .............. : " ${CMAKE_CXX_FLAGS}) #FIXME
+  MESSAGE(STATUS "")
+  MESSAGE(STATUS "  Build C++ library ............... : " ${PCRE_BUILD_PCRECPP})
+  MESSAGE(STATUS "  Enable UTF-8 support ............ : " ${PCRE_SUPPORT_UNICODE_PROPERTIES})
+  MESSAGE(STATUS "  Unicode properties .............. : " ${PCRE_SUPPORT_UNICODE_PROPERTIES})
+  MESSAGE(STATUS "  Newline char/sequence ........... : " ${PCRE_NEWLINE})
+  MESSAGE(STATUS "  \\R matches only ANYCRLF ......... : " ${PCRE_SUPPORT_BSR_ANYCRLF})
+  MESSAGE(STATUS "  EBCDIC coding ................... : " ${PCRE_EBCDIC})
+  MESSAGE(STATUS "  Rebuild char tables ............. : " ${PCRE_REBUILD_CHARTABLES})
+  MESSAGE(STATUS "  No stack recursion .............. : " ${PCRE_NO_RECURSE})
+  MESSAGE(STATUS "  POSIX mem threshold ............. : " ${PCRE_POSIX_MALLOC_THRESHOLD})
+  MESSAGE(STATUS "  Internal link size .............. : " ${PCRE_LINK_SIZE})
+  MESSAGE(STATUS "  Match limit ..................... : " ${PCRE_MATCH_LIMIT})
+  MESSAGE(STATUS "  Match limit recursion ........... : " ${PCRE_MATCH_LIMIT_RECURSION})
+  MESSAGE(STATUS "  Build shared libs ............... : " ${BUILD_SHARED_LIBS})
+  MESSAGE(STATUS "  Build static libs ............... : " ${BUILD_STATIC_LIBS})
+  MESSAGE(STATUS "  Build pcregrep .................. : " ${PCRE_BUILD_PCREGREP})
+  MESSAGE(STATUS "  Build tests (implies pcretest) .. : " ${PCRE_BUILD_TESTS})
+  IF(ZLIB_FOUND)
+    MESSAGE(STATUS "  Link pcregrep with libz ......... : " ${PCRE_SUPPORT_LIBZ})
+  ELSE(ZLIB_FOUND)
+    MESSAGE(STATUS "  Link pcregrep with libz ......... : None" )
+  ENDIF(ZLIB_FOUND)
+  IF(BZIP2_FOUND)
+    MESSAGE(STATUS "  Link pcregrep with libbz2 ....... : " ${PCRE_SUPPORT_LIBBZ2})
+  ELSE(BZIP2_FOUND)
+    MESSAGE(STATUS "  Link pcregrep with libbz2 ....... : None" )
+  ENDIF(BZIP2_FOUND)
+  IF(NOT PCRE_SUPPORT_LIBREADLINE)
+    MESSAGE(STATUS "  Link pcretest with libreadline .. : None" )
+  ELSE(NOT PCRE_SUPPORT_LIBREADLINE)
+    MESSAGE(STATUS "  Link pcretest with libreadline .. : " ${PCRE_SUPPORT_LIBREADLINE})
+  ENDIF(NOT PCRE_SUPPORT_LIBREADLINE)
+  IF(MINGW AND NOT PCRE_STATIC)
+    MESSAGE(STATUS "  Non-standard dll names (prefix) . : " ${NON_STANDARD_LIB_PREFIX})
+    MESSAGE(STATUS "  Non-standard dll names (suffix) . : " ${NON_STANDARD_LIB_SUFFIX})
+  ENDIF(MINGW AND NOT PCRE_STATIC)
+  MESSAGE(STATUS "")
+ENDIF(PCRE_SHOW_REPORT)


# end CMakeLists.txt

Modified: code/trunk/ChangeLog
===================================================================
--- code/trunk/ChangeLog    2009-03-23 12:05:43 UTC (rev 406)
+++ code/trunk/ChangeLog    2009-03-23 15:29:18 UTC (rev 407)
@@ -94,9 +94,17 @@
 23. Steven Van Ingelgem's patch to CMakeLists.txt to change the name
     CMAKE_BINARY_DIR to PROJECT_BINARY_DIR so that it works when PCRE is
     included within another project.
+    
+24. Steven Van Ingelgem's patches to add more options to the CMake support,
+    slightly modified by me:
+    
+      (a) PCRE_BUILD_TESTS can be set OFF not to build the tests, including 
+          not building pcregrep. 
+     
+      (b) PCRE_BUILD_PCREGREP can be see OFF not to build pcregrep, but only
+          if PCRE_BUILD_TESTS is also set OFF, because the tests use pcregrep. 



-
Version 7.8 05-Sep-08
---------------------