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

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

  ViewVC Help
Powered by ViewVC 1.1.5