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

Legend:
Removed from v.137  
changed lines
  Added in v.351

  ViewVC Help
Powered by ViewVC 1.1.5