/[pcre]/code/trunk/CMakeLists.txt
ViewVC logotype

Diff of /code/trunk/CMakeLists.txt

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 142 by ph10, Fri Mar 30 15:55:18 2007 UTC revision 312 by ph10, Wed Jan 23 18:02:23 2008 UTC
# Line 1  Line 1 
1  # CMakeLists.txt  # CMakeLists.txt
2  #  #
3    #
4  # This file allows building PCRE with the CMake configuration and build  # 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/  # tool. Download CMake in source or binary form from http://www.cmake.org/
6  #  #
7  # Original listfile by Christian Ehrlicher <Ch.Ehrlicher@gmx.de>  # Original listfile by Christian Ehrlicher <Ch.Ehrlicher@gmx.de>
8  # Refined and expanded by Daniel Richard G. <skunk@iSKUNK.ORG>  # 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 aded options for backward compatibility of library names when
19    #            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 pcre.dll,
22    #            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    
29  PROJECT(PCRE C CXX)  PROJECT(PCRE C CXX)
30    
31  CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6)  CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6)
32    
33    SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) # for FindReadline.cmake
34    
35    # external packages
36    FIND_PACKAGE( BZip2 )
37    FIND_PACKAGE( ZLIB )
38    FIND_PACKAGE( Readline )
39    
40  # Configuration checks  # Configuration checks
41    
42  INCLUDE(CheckIncludeFile)  INCLUDE(CheckIncludeFile)
# Line 18  INCLUDE(CheckIncludeFileCXX) Line 44  INCLUDE(CheckIncludeFileCXX)
44  INCLUDE(CheckFunctionExists)  INCLUDE(CheckFunctionExists)
45  INCLUDE(CheckTypeSize)  INCLUDE(CheckTypeSize)
46    
47  CHECK_INCLUDE_FILE(dirent.h     HAVE_DIRENT_H)  CHECK_INCLUDE_FILE(dirent.h         HAVE_DIRENT_H)
 CHECK_INCLUDE_FILE(unistd.h     HAVE_UNISTD_H)  
48  CHECK_INCLUDE_FILE(sys/stat.h   HAVE_SYS_STAT_H)  CHECK_INCLUDE_FILE(sys/stat.h   HAVE_SYS_STAT_H)
49  CHECK_INCLUDE_FILE(sys/types.h  HAVE_SYS_TYPES_H)  CHECK_INCLUDE_FILE(sys/types.h  HAVE_SYS_TYPES_H)
50    CHECK_INCLUDE_FILE(unistd.h         HAVE_UNISTD_H)
51    CHECK_INCLUDE_FILE(windows.h    HAVE_WINDOWS_H)
52    
53  CHECK_INCLUDE_FILE_CXX(type_traits.h            HAVE_TYPE_TRAITS_H)  CHECK_INCLUDE_FILE_CXX(type_traits.h            HAVE_TYPE_TRAITS_H)
54  CHECK_INCLUDE_FILE_CXX(bits/type_traits.h       HAVE_BITS_TYPE_TRAITS_H)  CHECK_INCLUDE_FILE_CXX(bits/type_traits.h       HAVE_BITS_TYPE_TRAITS_H)
# Line 29  CHECK_INCLUDE_FILE_CXX(bits/type_traits. Line 56  CHECK_INCLUDE_FILE_CXX(bits/type_traits.
56  CHECK_FUNCTION_EXISTS(bcopy     HAVE_BCOPY)  CHECK_FUNCTION_EXISTS(bcopy     HAVE_BCOPY)
57  CHECK_FUNCTION_EXISTS(memmove   HAVE_MEMMOVE)  CHECK_FUNCTION_EXISTS(memmove   HAVE_MEMMOVE)
58  CHECK_FUNCTION_EXISTS(strerror  HAVE_STRERROR)  CHECK_FUNCTION_EXISTS(strerror  HAVE_STRERROR)
59    CHECK_FUNCTION_EXISTS(strtoll   HAVE_STRTOLL)
60    CHECK_FUNCTION_EXISTS(strtoq    HAVE_STRTOQ)
61    CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64)
62    
63  CHECK_TYPE_SIZE("long long"             LONG_LONG)  CHECK_TYPE_SIZE("long long"             LONG_LONG)
64  CHECK_TYPE_SIZE("unsigned long long"    UNSIGNED_LONG_LONG)  CHECK_TYPE_SIZE("unsigned long long"    UNSIGNED_LONG_LONG)
# Line 38  CHECK_TYPE_SIZE("unsigned long long"   UNS Line 68  CHECK_TYPE_SIZE("unsigned long long"   UNS
68  # (Note: CMakeSetup displays these in alphabetical order, regardless of  # (Note: CMakeSetup displays these in alphabetical order, regardless of
69  # the order we use here)  # the order we use here)
70    
71  SET(BUILD_SHARED_LIBS "SHARED" CACHE STRING  SET(BUILD_SHARED_LIBS OFF CACHE BOOL
72      "What type of libraries to build. Set to SHARED or STATIC.")      "Build shared libraries instead of static ones.")
73    
74  OPTION(PCRE_BUILD_PCRECPP "Build the PCRE C++ library (pcrecpp)." ON)  OPTION(PCRE_BUILD_PCRECPP "Build the PCRE C++ library (pcrecpp)." ON)
75    
76  SET(PCRE_EBCDIC FALSE CACHE BOOL  SET(PCRE_EBCDIC OFF CACHE BOOL
77      "Use EBCDIC coding instead of ASCII. (This is rarely used outside of mainframe systems)")      "Use EBCDIC coding instead of ASCII. (This is rarely used outside of mainframe systems)")
78    
79  SET(PCRE_LINK_SIZE "2" CACHE STRING  SET(PCRE_LINK_SIZE "2" CACHE STRING
# Line 56  SET(PCRE_MATCH_LIMIT_RECURSION "MATCH_LI Line 86  SET(PCRE_MATCH_LIMIT_RECURSION "MATCH_LI
86      "Default limit on internal recursion. See MATCH_LIMIT_RECURSION in config.h.in for details.")      "Default limit on internal recursion. See MATCH_LIMIT_RECURSION in config.h.in for details.")
87    
88  SET(PCRE_NEWLINE "LF" CACHE STRING  SET(PCRE_NEWLINE "LF" CACHE STRING
89      "What to recognize as a newline (one of CR, LF, CRLF, ANY).")      "What to recognize as a newline (one of CR, LF, CRLF, ANY, ANYCRLF).")
90    
91  SET(PCRE_NO_RECURSE TRUE CACHE BOOL  SET(PCRE_NO_RECURSE OFF CACHE BOOL
92      "If ON, then don't use stack recursion when matching. See NO_RECURSE in config.h.in for details.")      "If ON, then don't use stack recursion when matching. See NO_RECURSE in config.h.in for details.")
93    
94  SET(PCRE_POSIX_MALLOC_THRESHOLD "10" CACHE STRING  SET(PCRE_POSIX_MALLOC_THRESHOLD "10" CACHE STRING
95      "Threshold for malloc() usage. See POSIX_MALLOC_THRESHOLD in config.h.in for details.")      "Threshold for malloc() usage. See POSIX_MALLOC_THRESHOLD in config.h.in for details.")
96    
97  SET(PCRE_SUPPORT_UNICODE_PROPERTIES FALSE CACHE BOOL  SET(PCRE_SUPPORT_UNICODE_PROPERTIES OFF CACHE BOOL
98      "Enable support for Unicode properties. (If set, UTF-8 support will be enabled as well)")      "Enable support for Unicode properties. (If set, UTF-8 support will be enabled as well)")
99    
100  SET(PCRE_SUPPORT_UTF8 FALSE CACHE BOOL  SET(PCRE_SUPPORT_UTF8 OFF CACHE BOOL
101      "Enable support for the Unicode UTF-8 encoding.")      "Enable support for the Unicode UTF-8 encoding.")
102    
103    SET(PCRE_SUPPORT_BSR_ANYCRLF OFF CACHE BOOL
104        "ON=Backslash-R matches only LF CR and CRLF, OFF=Backslash-R matches all Unicode Linebreaks")
105    
106    SET(NON_STANDARD_LIB_PREFIX OFF CACHE BOOL
107       "ON=Shared libraries built in mingw will be named pcre.dll, etc., instead of libpcre.dll, etc.")
108    
109    SET(NON_STANDARD_LIB_SUFFIX OFF CACHE BOOL
110       "ON=Shared libraries built in mingw will be named libpcre-0.dll, etc., instead of libpcre.dll, etc.")
111    
112    # bzip2 lib
113    IF(BZIP2_FOUND)
114      OPTION (PCRE_SUPPORT_LIBBZ2 "Enable support for linking pcregrep with libbz2." ON)
115    ENDIF(BZIP2_FOUND)
116    IF(PCRE_SUPPORT_LIBBZ2)
117      INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR})
118    ENDIF(PCRE_SUPPORT_LIBBZ2)
119    
120    # zlib
121    IF(ZLIB_FOUND)
122      OPTION (PCRE_SUPPORT_LIBZ "Enable support for linking pcregrep with libz." ON)
123    ENDIF(ZLIB_FOUND)
124    IF(PCRE_SUPPORT_LIBZ)
125      INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
126    ENDIF(PCRE_SUPPORT_LIBZ)
127    
128    # readline lib
129    IF(READLINE_FOUND)
130      OPTION (PCRE_SUPPORT_LIBREADLINE  "Enable support for linking pcretest with libreadline." ON)
131    ENDIF(READLINE_FOUND)
132    IF(PCRE_SUPPORT_LIBREADLINE)
133      INCLUDE_DIRECTORIES(${READLINE_INCLUDE_DIR})
134    ENDIF(PCRE_SUPPORT_LIBREADLINE)
135    
136  # Prepare build configuration  # Prepare build configuration
137    
138  SET(pcre_have_type_traits 0)  SET(pcre_have_type_traits 0)
# Line 94  IF(HAVE_UNSIGNED_LONG_LONG) Line 157  IF(HAVE_UNSIGNED_LONG_LONG)
157          SET(pcre_have_ulong_long 1)          SET(pcre_have_ulong_long 1)
158  ENDIF(HAVE_UNSIGNED_LONG_LONG)  ENDIF(HAVE_UNSIGNED_LONG_LONG)
159    
160    IF(NOT BUILD_SHARED_LIBS)
161            SET(PCRE_STATIC 1)
162    ENDIF(NOT BUILD_SHARED_LIBS)
163    
164    IF(PCRE_SUPPORT_BSR_ANYCRLF)
165            SET(BSR_ANYCRLF 1)
166    ENDIF(PCRE_SUPPORT_BSR_ANYCRLF)
167    
168  IF(PCRE_SUPPORT_UTF8 OR PCRE_SUPPORT_UNICODE_PROPERTIES)  IF(PCRE_SUPPORT_UTF8 OR PCRE_SUPPORT_UNICODE_PROPERTIES)
169          SET(SUPPORT_UTF8 1)          SET(SUPPORT_UTF8 1)
170  ENDIF(PCRE_SUPPORT_UTF8 OR PCRE_SUPPORT_UNICODE_PROPERTIES)  ENDIF(PCRE_SUPPORT_UTF8 OR PCRE_SUPPORT_UNICODE_PROPERTIES)
# Line 102  IF(PCRE_SUPPORT_UNICODE_PROPERTIES) Line 173  IF(PCRE_SUPPORT_UNICODE_PROPERTIES)
173          SET(SUPPORT_UCP 1)          SET(SUPPORT_UCP 1)
174  ENDIF(PCRE_SUPPORT_UNICODE_PROPERTIES)  ENDIF(PCRE_SUPPORT_UNICODE_PROPERTIES)
175    
176    IF(PCRE_SUPPORT_LIBREADLINE)
177            SET(SUPPORT_LIBREADLINE 1)
178            SET(PCRETEST_LIBS ${READLINE_LIBRARY})
179    ENDIF(PCRE_SUPPORT_LIBREADLINE)
180    
181    IF(PCRE_SUPPORT_LIBZ)
182            SET(SUPPORT_LIBZ 1)
183            SET(PCREGREP_LIBS ${PCREGREP_LIBS} ${ZLIB_LIBRARIES})
184    ENDIF(PCRE_SUPPORT_LIBZ)
185    
186    IF(PCRE_SUPPORT_LIBBZ2)
187            SET(SUPPORT_LIBBZ2 1)
188            SET(PCREGREP_LIBS ${PCREGREP_LIBS} ${BZIP2_LIBRARIES})
189    ENDIF(PCRE_SUPPORT_LIBBZ2)
190    
191    SET(NEWLINE "")
192    
193  IF(PCRE_NEWLINE STREQUAL "LF")  IF(PCRE_NEWLINE STREQUAL "LF")
194    SET(NEWLINE "10")          SET(NEWLINE "10")
 ELSE(PCRE_NEWLINE STREQUAL "LF")  
   IF(PCRE_NEWLINE STREQUAL "CR")  
     SET(NEWLINE "13")  
   ELSE(PCRE_NEWLINE STREQUAL "CR")  
     IF(PCRE_NEWLINE STREQUAL "CRLF")  
       SET(NEWLINE "3338")  
     ELSE(PCRE_NEWLINE STREQUAL "CRLF")  
       IF(PCRE_NEWLINE STREQUAL "ANY")  
         SET(NEWLINE "-1")  
       ELSE(PCRE_NEWLINE STREQUAL "ANY")  
         MESSAGE(FATAL_ERROR "The PCRE_NEWLINE variable must be set to one of the following values: \"LF\", \"CR\", \"CRLF\", \"ANY\".")  
       ENDIF(PCRE_NEWLINE STREQUAL "ANY")  
     ENDIF(PCRE_NEWLINE STREQUAL "CRLF")  
   ENDIF(PCRE_NEWLINE STREQUAL "CR")  
195  ENDIF(PCRE_NEWLINE STREQUAL "LF")  ENDIF(PCRE_NEWLINE STREQUAL "LF")
196    IF(PCRE_NEWLINE STREQUAL "CR")
197            SET(NEWLINE "13")
198    ENDIF(PCRE_NEWLINE STREQUAL "CR")
199    IF(PCRE_NEWLINE STREQUAL "CRLF")
200            SET(NEWLINE "3338")
201    ENDIF(PCRE_NEWLINE STREQUAL "CRLF")
202    IF(PCRE_NEWLINE STREQUAL "ANY")
203            SET(NEWLINE "-1")
204    ENDIF(PCRE_NEWLINE STREQUAL "ANY")
205    IF(PCRE_NEWLINE STREQUAL "ANYCRLF")
206            SET(NEWLINE "-2")
207    ENDIF(PCRE_NEWLINE STREQUAL "ANYCRLF")
208    
209    IF(NEWLINE STREQUAL "")
210            MESSAGE(FATAL_ERROR "The PCRE_NEWLINE variable must be set to one of the following values: \"LF\", \"CR\", \"CRLF\", \"ANY\", \"ANYCRLF\".")
211    ENDIF(NEWLINE STREQUAL "")
212    
213  IF(PCRE_EBCDIC)  IF(PCRE_EBCDIC)
214          SET(EBCDIC 1)          SET(EBCDIC 1)
# Line 152  ENDIF(PCRE_BUILD_PCRECPP) Line 242  ENDIF(PCRE_BUILD_PCRECPP)
242    
243  # Character table generation  # Character table generation
244    
245  ADD_EXECUTABLE(dftables dftables.c)  OPTION(PCRE_REBUILD_CHARTABLES "Rebuild char tables" OFF)
246    IF(PCRE_REBUILD_CHARTABLES)
247  GET_TARGET_PROPERTY(DFTABLES_EXE dftables LOCATION)    ADD_EXECUTABLE(dftables dftables.c)
248    
249  ADD_CUSTOM_COMMAND(    GET_TARGET_PROPERTY(DFTABLES_EXE dftables LOCATION)
250          COMMENT "Generating character tables (pcre_chartables.c) for current locale"  
251          DEPENDS dftables    ADD_CUSTOM_COMMAND(
252          COMMAND ${DFTABLES_EXE}      COMMENT "Generating character tables (pcre_chartables.c) for current locale"
253          ARGS    ${CMAKE_BINARY_DIR}/pcre_chartables.c      DEPENDS dftables
254          OUTPUT  ${CMAKE_BINARY_DIR}/pcre_chartables.c      COMMAND ${DFTABLES_EXE}
255  )      ARGS        ${CMAKE_BINARY_DIR}/pcre_chartables.c
256        OUTPUT      ${CMAKE_BINARY_DIR}/pcre_chartables.c
257      )
258    ELSE(PCRE_REBUILD_CHARTABLES)
259      CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/pcre_chartables.c.dist
260                        ${CMAKE_BINARY_DIR}/pcre_chartables.c
261                        COPYONLY)
262    ENDIF(PCRE_REBUILD_CHARTABLES)
263    
264  # Source code  # Source code
265    
266  SET(PCRE_HEADERS ${CMAKE_BINARY_DIR}/pcre.h)  SET(PCRE_HEADERS ${CMAKE_BINARY_DIR}/pcre.h)
267    
268  SET(PCRE_SOURCES  SET(PCRE_SOURCES
269          ${CMAKE_BINARY_DIR}/pcre_chartables.c    ${CMAKE_BINARY_DIR}/pcre_chartables.c
270          pcre_compile.c    pcre_compile.c
271          pcre_config.c    pcre_config.c
272          pcre_dfa_exec.c    pcre_dfa_exec.c
273          pcre_exec.c    pcre_exec.c
274          pcre_fullinfo.c    pcre_fullinfo.c
275          pcre_get.c    pcre_get.c
276          pcre_globals.c    pcre_globals.c
277          pcre_info.c    pcre_info.c
278          pcre_newline.c    pcre_newline.c
279          pcre_maketables.c    pcre_maketables.c
280          pcre_ord2utf8.c    pcre_ord2utf8.c
281          pcre_refcount.c    pcre_refcount.c
282          pcre_study.c    pcre_study.c
283          pcre_tables.c    pcre_tables.c
284          pcre_try_flipped.c    pcre_try_flipped.c
285          pcre_ucp_searchfuncs.c    pcre_ucp_searchfuncs.c
286          pcre_valid_utf8.c    pcre_valid_utf8.c
287          pcre_version.c    pcre_version.c
288          pcre_xclass.c    pcre_xclass.c
289  )  )
290    
291  SET(PCREPOSIX_HEADERS pcreposix.h)  SET(PCREPOSIX_HEADERS pcreposix.h)
# Line 196  SET(PCREPOSIX_HEADERS pcreposix.h) Line 293  SET(PCREPOSIX_HEADERS pcreposix.h)
293  SET(PCREPOSIX_SOURCES pcreposix.c)  SET(PCREPOSIX_SOURCES pcreposix.c)
294    
295  SET(PCRECPP_HEADERS  SET(PCRECPP_HEADERS
296          pcrecpp.h    pcrecpp.h
297          pcre_scanner.h    pcre_scanner.h
298          ${CMAKE_BINARY_DIR}/pcrecpparg.h    ${CMAKE_BINARY_DIR}/pcrecpparg.h
299          ${CMAKE_BINARY_DIR}/pcre_stringpiece.h    ${CMAKE_BINARY_DIR}/pcre_stringpiece.h
300  )  )
301    
302  SET(PCRECPP_SOURCES  SET(PCRECPP_SOURCES
# Line 212  SET(PCRECPP_SOURCES Line 309  SET(PCRECPP_SOURCES
309    
310  ADD_DEFINITIONS(-DHAVE_CONFIG_H)  ADD_DEFINITIONS(-DHAVE_CONFIG_H)
311    
312  IF(WIN32)  IF(MSVC)
         # What about -DDLL_EXPORT?  
313          ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)          ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
314  ENDIF(WIN32)  ENDIF(MSVC)
315    
316  SET(CMAKE_INCLUDE_CURRENT_DIR 1)  SET(CMAKE_INCLUDE_CURRENT_DIR 1)
317    # needed to make sure to not link debug libs
318  #SET(CMAKE_DEBUG_POSTFIX "d")  # against release libs and vice versa
319    IF(WIN32)
320      SET(CMAKE_DEBUG_POSTFIX "d")
321    ENDIF(WIN32)
322    
323  # Libraries  # Libraries
324    
325  ADD_LIBRARY(pcre ${PCRE_HEADERS} ${PCRE_SOURCES})  ADD_LIBRARY(pcre ${PCRE_HEADERS} ${PCRE_SOURCES} ${CMAKE_BINARY_DIR}/config.h)
   
326  ADD_LIBRARY(pcreposix ${PCREPOSIX_HEADERS} ${PCREPOSIX_SOURCES})  ADD_LIBRARY(pcreposix ${PCREPOSIX_HEADERS} ${PCREPOSIX_SOURCES})
327  TARGET_LINK_LIBRARIES(pcreposix pcre)  TARGET_LINK_LIBRARIES(pcreposix pcre)
328    
329    IF(MINGW AND NON_STANDARD_LIB_PREFIX AND NOT PCRE_STATIC)
330    SET_TARGET_PROPERTIES(pcre pcreposix
331                            PROPERTIES PREFIX ""
332    )
333    ENDIF(MINGW AND NON_STANDARD_LIB_PREFIX AND NOT PCRE_STATIC)
334    
335    IF(MINGW AND NON_STANDARD_LIB_SUFFIX AND NOT PCRE_STATIC)
336    SET_TARGET_PROPERTIES(pcre pcreposix
337                            PROPERTIES SUFFIX "-0.dll"
338    )
339    ENDIF(MINGW AND NON_STANDARD_LIB_SUFFIX AND NOT PCRE_STATIC)
340    
341  IF(PCRE_BUILD_PCRECPP)  IF(PCRE_BUILD_PCRECPP)
342          ADD_LIBRARY(pcrecpp ${PCRECPP_HEADERS} ${PCRECPP_SOURCES})    ADD_LIBRARY(pcrecpp ${PCRECPP_HEADERS} ${PCRECPP_SOURCES})
343          TARGET_LINK_LIBRARIES(pcrecpp pcre)    TARGET_LINK_LIBRARIES(pcrecpp pcre)
344          IF(MINGW)  IF(MINGW AND NON_STANDARD_LIB_PREFIX AND NOT PCRE_STATIC)
345                  SET_TARGET_PROPERTIES(pcrecpp PROPERTIES PREFIX "mingw-")  SET_TARGET_PROPERTIES(pcrecpp
346          ENDIF(MINGW)                          PROPERTIES PREFIX ""
347    )
348    ENDIF(MINGW AND NON_STANDARD_LIB_PREFIX AND NOT PCRE_STATIC)
349    IF(MINGW AND NON_STANDARD_LIB_SUFFIX AND NOT PCRE_STATIC)
350    SET_TARGET_PROPERTIES(pcrecpp
351                            PROPERTIES SUFFIX "-0.dll"
352    )
353    ENDIF(MINGW AND NON_STANDARD_LIB_SUFFIX AND NOT PCRE_STATIC)
354    
355  ENDIF(PCRE_BUILD_PCRECPP)  ENDIF(PCRE_BUILD_PCRECPP)
356    
357  # Executables  # Executables
358    
359  ADD_EXECUTABLE(pcretest pcretest.c)  ADD_EXECUTABLE(pcretest pcretest.c)
360  TARGET_LINK_LIBRARIES(pcretest pcreposix)  TARGET_LINK_LIBRARIES(pcretest pcreposix ${PCRETEST_LIBS})
361    
362  ADD_EXECUTABLE(pcregrep pcregrep.c)  ADD_EXECUTABLE(pcregrep pcregrep.c)
363  TARGET_LINK_LIBRARIES(pcregrep pcreposix)  TARGET_LINK_LIBRARIES(pcregrep pcreposix ${PCREGREP_LIBS})
364    
365    # Removed by PH (2008-01-23) because pcredemo shouldn't really be built
366    # automatically, and it gave trouble in some environments anyway.
367    # ADD_EXECUTABLE(pcredemo pcredemo.c)
368    # TARGET_LINK_LIBRARIES(pcredemo pcreposix)
369    # IF(NOT BUILD_SHARED_LIBS)
370    #     # make sure to not use declspec(dllimport) in static mode on windows
371    #         SET_TARGET_PROPERTIES(pcredemo PROPERTIES COMPILE_FLAGS "-DPCRE_STATIC")
372    # ENDIF(NOT BUILD_SHARED_LIBS)
373    
374    IF(PCRE_BUILD_PCRECPP)
375            ADD_EXECUTABLE(pcrecpp_unittest pcrecpp_unittest.cc)
376            TARGET_LINK_LIBRARIES(pcrecpp_unittest pcrecpp)
377    IF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC)
378    SET_TARGET_PROPERTIES(pcrecpp
379                            PROPERTIES PREFIX ""
380    )
381    ENDIF(MINGW AND NON_STANDARD_LIB_NAMES AND NOT PCRE_STATIC)
382    
383    
384            ADD_EXECUTABLE(pcre_scanner_unittest pcre_scanner_unittest.cc)
385            TARGET_LINK_LIBRARIES(pcre_scanner_unittest pcrecpp)
386    
387            ADD_EXECUTABLE(pcre_stringpiece_unittest pcre_stringpiece_unittest.cc)
388            TARGET_LINK_LIBRARIES(pcre_stringpiece_unittest pcrecpp)
389    ENDIF(PCRE_BUILD_PCRECPP)
390    
391  # Testing  # Testing
392    
393  ENABLE_TESTING()  ENABLE_TESTING()
394    
395    GET_TARGET_PROPERTY(PCREGREP_EXE pcregrep DEBUG_LOCATION)
396    GET_TARGET_PROPERTY(PCRETEST_EXE pcretest DEBUG_LOCATION)
397    
398    # Write out a CTest configuration file that sets some needed environment
399    # variables for the test scripts.
400    #
401    FILE(WRITE ${CMAKE_BINARY_DIR}/CTestCustom.ctest
402    "# This is a generated file.
403    SET(ENV{srcdir} ${CMAKE_SOURCE_DIR})
404    SET(ENV{pcregrep} ${PCREGREP_EXE})
405    SET(ENV{pcretest} ${PCRETEST_EXE})
406    ")
407    
408  IF(UNIX)  IF(UNIX)
409          ADD_TEST(test1 sh -c "srcdir=${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/RunTest")          ADD_TEST(pcre_test      ${CMAKE_SOURCE_DIR}/RunTest)
410          ADD_TEST(test2 sh -c "srcdir=${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/RunGrepTest")          ADD_TEST(pcre_grep_test ${CMAKE_SOURCE_DIR}/RunGrepTest)
 ELSE(UNIX)  
   IF(WIN32)  
         ADD_TEST(test1 ${CMAKE_SOURCE_DIR}/RunTest.bat ${CMAKE_SOURCE_DIR})  
   ENDIF(WIN32)  
411  ENDIF(UNIX)  ENDIF(UNIX)
412    IF(WIN32)
413            ADD_TEST(pcre_test cmd /C ${CMAKE_SOURCE_DIR}/RunTest.bat)
414    ENDIF(WIN32)
415    
416    GET_TARGET_PROPERTY(PCRECPP_UNITTEST_EXE
417                        pcrecpp_unittest
418                        DEBUG_LOCATION)
419    
420    GET_TARGET_PROPERTY(PCRE_SCANNER_UNITTEST_EXE
421                        pcre_scanner_unittest
422                        DEBUG_LOCATION)
423    
424    GET_TARGET_PROPERTY(PCRE_STRINGPIECE_UNITTEST_EXE
425                        pcre_stringpiece_unittest
426                        DEBUG_LOCATION)
427    
428    ADD_TEST(pcrecpp_test          ${PCRECPP_UNITTEST_EXE})
429    ADD_TEST(pcre_scanner_test     ${PCRE_SCANNER_UNITTEST_EXE})
430    ADD_TEST(pcre_stringpiece_test ${PCRE_STRINGPIECE_UNITTEST_EXE})
431    
432  # Installation  # Installation
433    
# Line 273  FILE(GLOB man1 ${CMAKE_SOURCE_DIR}/doc/* Line 445  FILE(GLOB man1 ${CMAKE_SOURCE_DIR}/doc/*
445  FILE(GLOB man3 ${CMAKE_SOURCE_DIR}/doc/*.3)  FILE(GLOB man3 ${CMAKE_SOURCE_DIR}/doc/*.3)
446    
447  IF(PCRE_BUILD_PCRECPP)  IF(PCRE_BUILD_PCRECPP)
448          INSTALL(TARGETS pcrecpp DESTINATION lib)          INSTALL(TARGETS pcrecpp
449                    RUNTIME DESTINATION bin
450                    LIBRARY DESTINATION lib
451                    ARCHIVE DESTINATION lib)
452          INSTALL(FILES ${PCRECPP_HEADERS} DESTINATION include)          INSTALL(FILES ${PCRECPP_HEADERS} DESTINATION include)
453  ELSE(PCRE_BUILD_PCRECPP)  ELSE(PCRE_BUILD_PCRECPP)
454          # Remove pcrecpp.3          # Remove pcrecpp.3
# Line 286  ELSE(PCRE_BUILD_PCRECPP) Line 461  ELSE(PCRE_BUILD_PCRECPP)
461          SET(man3 ${man3_new})          SET(man3 ${man3_new})
462  ENDIF(PCRE_BUILD_PCRECPP)  ENDIF(PCRE_BUILD_PCRECPP)
463    
464    
465  INSTALL(FILES ${man1} DESTINATION man/man1)  INSTALL(FILES ${man1} DESTINATION man/man1)
466  INSTALL(FILES ${man3} DESTINATION man/man3)  INSTALL(FILES ${man3} DESTINATION man/man3)
467  INSTALL(FILES ${html} DESTINATION doc/html)  INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)
468    
469    # help, only for nice output
470    IF(BUILD_SHARED_LIBS)
471      SET(BUILD_STATIC_LIBS OFF)
472    ELSE(BUILD_SHARED_LIBS)
473      SET(BUILD_STATIC_LIBS ON)
474    ENDIF(BUILD_SHARED_LIBS)
475    
476    MESSAGE(STATUS "")
477    MESSAGE(STATUS "")
478    MESSAGE(STATUS "PCRE configuration summary:")
479    MESSAGE(STATUS "")
480    MESSAGE(STATUS "  Install prefix .................. : " ${CMAKE_INSTALL_PREFIX})
481    MESSAGE(STATUS "  C compiler ...................... : " ${CMAKE_C_COMPILER})
482    MESSAGE(STATUS "  C++ compiler .................... : " ${CMAKE_CXX_COMPILER})
483    MESSAGE(STATUS "  C compiler flags ................ : " ${CMAKE_C_FLAGS})   #FIXME
484    MESSAGE(STATUS "  C++ compiler flags .............. : " ${CMAKE_CXX_FLAGS}) #FIXME
485    MESSAGE(STATUS "")
486    MESSAGE(STATUS "  Build C++ library ............... : " ${PCRE_BUILD_PCRECPP})
487    MESSAGE(STATUS "  Enable UTF-8 support ............ : " ${PCRE_SUPPORT_UNICODE_PROPERTIES})
488    MESSAGE(STATUS "  Unicode properties .............. : " ${PCRE_SUPPORT_UNICODE_PROPERTIES})
489    MESSAGE(STATUS "  Newline char/sequence ........... : " ${PCRE_NEWLINE})
490    MESSAGE(STATUS "  \\R matches only ANYCRLF ......... : " ${PCRE_SUPPORT_BSR_ANYCRLF})
491    MESSAGE(STATUS "  EBCDIC coding ................... : " ${PCRE_EBCDIC})
492    MESSAGE(STATUS "  Rebuild char tables ............. : " ${PCRE_REBUILD_CHARTABLES})
493    MESSAGE(STATUS "  No stack recursion .............. : " ${PCRE_NO_RECURSE})
494    MESSAGE(STATUS "  POSIX mem threshold ............. : " ${PCRE_POSIX_MALLOC_THRESHOLD})
495    MESSAGE(STATUS "  Internal link size .............. : " ${PCRE_LINK_SIZE})
496    MESSAGE(STATUS "  Match limit ..................... : " ${PCRE_MATCH_LIMIT})
497    MESSAGE(STATUS "  Match limit recursion ........... : " ${PCRE_MATCH_LIMIT_RECURSION})
498    MESSAGE(STATUS "  Build shared libs ............... : " ${BUILD_SHARED_LIBS})
499    MESSAGE(STATUS "  Build static libs ............... : " ${BUILD_STATIC_LIBS})
500    IF(ZLIB_FOUND)
501      MESSAGE(STATUS "  Link pcregrep with libz ......... : " ${PCRE_SUPPORT_LIBZ})
502    ELSE(ZLIB_FOUND)
503      MESSAGE(STATUS "  Link pcregrep with libz ......... :   zlib libraries not found!" )
504    ENDIF(ZLIB_FOUND)
505    IF(BZIP2_FOUND)
506      MESSAGE(STATUS "  Link pcregrep with libbz2 ....... : " ${PCRE_SUPPORT_LIBBZ2})
507    ELSE(BZIP2_FOUND)
508      MESSAGE(STATUS "  Link pcregrep with libbz2 ....... :   bzip2 libraries not found!" )
509    ENDIF(BZIP2_FOUND)
510    MESSAGE(STATUS "  Link pcretest with libreadline .. : " ${PCRE_SUPPORT_LIBREADLINE})
511    MESSAGE(STATUS "")
512    
513  # end CMakeLists.txt  # end CMakeLists.txt

Legend:
Removed from v.142  
changed lines
  Added in v.312

  ViewVC Help
Powered by ViewVC 1.1.5