summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2008-01-20 19:39:43 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2008-01-20 19:39:43 +0000
commitda910a1dbac71be71bf0d55ee38f9d1c94ba376e (patch)
treeada807e5779b1295bbd80fc7f4aebe75254cff35
parent8a8115165a130693f7cf711bbdc52e1e30a8834f (diff)
downloadpcre-da910a1dbac71be71bf0d55ee38f9d1c94ba376e.tar.gz
Apply Christian Ehrlicher's patch to update the CMake files.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@303 2f5784b3-3f2a-0410-8824-cb99058d5e15
-rw-r--r--CMakeLists.txt210
-rw-r--r--ChangeLog3
-rw-r--r--Makefile.am1
-rw-r--r--cmake/COPYING-CMAKE-SCRIPTS22
-rw-r--r--cmake/FindPackageHandleStandardArgs.cmake58
-rw-r--r--cmake/FindReadline.cmake19
-rw-r--r--config-cmake.h.in52
7 files changed, 275 insertions, 90 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 647665e..92030d8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,12 +13,21 @@
# not a previously-installed one.
# (c) Add PCRE_SUPPORT_LIBREADLINE, PCRE_SUPPORT_LIBZ, and
# PCRE_SUPPORT_LIBBZ2.
+# 2008-01-20 Brought up to date to include several new features by Christian
+# Ehrlicher.
#
PROJECT(PCRE C CXX)
CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6)
+SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) # for FindReadline.cmake
+
+# external packages
+FIND_PACKAGE( BZip2 )
+FIND_PACKAGE( ZLIB )
+FIND_PACKAGE( Readline )
+
# Configuration checks
INCLUDE(CheckIncludeFile)
@@ -26,15 +35,11 @@ INCLUDE(CheckIncludeFileCXX)
INCLUDE(CheckFunctionExists)
INCLUDE(CheckTypeSize)
-CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
-CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
-
-CHECK_INCLUDE_FILE(bzlib.h HAVE_BZLIB_H)
-CHECK_INCLUDE_FILE(zlib.h HAVE_ZLIB_H)
-CHECK_INCLUDE_FILE(readline/history.h HAVE_READLINE_HISTORY_H)
-CHECK_INCLUDE_FILE(readline/readline.h HAVE_READLINE_READLINE_H)
+CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H)
CHECK_INCLUDE_FILE_CXX(type_traits.h HAVE_TYPE_TRAITS_H)
CHECK_INCLUDE_FILE_CXX(bits/type_traits.h HAVE_BITS_TYPE_TRAITS_H)
@@ -42,6 +47,9 @@ CHECK_INCLUDE_FILE_CXX(bits/type_traits.h HAVE_BITS_TYPE_TRAITS_H)
CHECK_FUNCTION_EXISTS(bcopy HAVE_BCOPY)
CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR)
+CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL)
+CHECK_FUNCTION_EXISTS(strtoq HAVE_STRTOQ)
+CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64)
CHECK_TYPE_SIZE("long long" LONG_LONG)
CHECK_TYPE_SIZE("unsigned long long" UNSIGNED_LONG_LONG)
@@ -86,14 +94,29 @@ SET(PCRE_SUPPORT_UTF8 OFF CACHE BOOL
SET(PCRE_SUPPORT_BSR_ANYCRLF OFF CACHE BOOL
"ON=Backslash-R matches only LF CR and CRLF, OFF=Backslash-R matches all Unicode Linebreaks")
-SET(PCRE_SUPPORT_LIBBZ2 OFF CACHE BOOL
- "Enable support for linking pcregrep with libbz2.")
+# bzip2 lib
+IF(BZIP2_FOUND)
+ OPTION (PCRE_SUPPORT_LIBBZ2 "Enable support for linking pcregrep with libbz2." ON)
+ENDIF(BZIP2_FOUND)
+IF(PCRE_SUPPORT_LIBBZ2)
+ INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR})
+ENDIF(PCRE_SUPPORT_LIBBZ2)
-SET (PCRE_SUPPORT_LIBZ OFF CACHE BOOL
- "Enable support for linking pcregrep with libz.")
+# zlib
+IF(ZLIB_FOUND)
+ OPTION (PCRE_SUPPORT_LIBZ "Enable support for linking pcregrep with libz." ON)
+ENDIF(ZLIB_FOUND)
+IF(PCRE_SUPPORT_LIBZ)
+ INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
+ENDIF(PCRE_SUPPORT_LIBZ)
-SET (PCRE_SUPPORT_LIBREADLINE OFF CACHE BOOL
- "Enable support for linking pcretest with libreadline.")
+# readline lib
+IF(READLINE_FOUND)
+ OPTION (PCRE_SUPPORT_LIBREADLINE "Enable support for linking pcretest with libreadline." ON)
+ENDIF(READLINE_FOUND)
+IF(PCRE_SUPPORT_LIBREADLINE)
+ INCLUDE_DIRECTORIES(${READLINE_INCLUDE_DIR})
+ENDIF(PCRE_SUPPORT_LIBREADLINE)
# Prepare build configuration
@@ -137,17 +160,17 @@ ENDIF(PCRE_SUPPORT_UNICODE_PROPERTIES)
IF(PCRE_SUPPORT_LIBREADLINE)
SET(SUPPORT_LIBREADLINE 1)
- SET(PCRETEST_LIBS readline)
+ SET(PCRETEST_LIBS ${READLINE_LIBRARY})
ENDIF(PCRE_SUPPORT_LIBREADLINE)
IF(PCRE_SUPPORT_LIBZ)
SET(SUPPORT_LIBZ 1)
- SET(PCREGREP_LIBS z)
+ SET(PCREGREP_LIBS ${PCREGREP_LIBS} ${ZLIB_LIBRARIES})
ENDIF(PCRE_SUPPORT_LIBZ)
IF(PCRE_SUPPORT_LIBBZ2)
SET(SUPPORT_LIBBZ2 1)
- SET(PCREGREP_LIBS ${PCREGREP_LIBS} bz2)
+ SET(PCREGREP_LIBS ${PCREGREP_LIBS} ${BZIP2_LIBRARIES})
ENDIF(PCRE_SUPPORT_LIBBZ2)
SET(NEWLINE "")
@@ -204,43 +227,50 @@ ENDIF(PCRE_BUILD_PCRECPP)
# Character table generation
-ADD_EXECUTABLE(dftables dftables.c)
-
-GET_TARGET_PROPERTY(DFTABLES_EXE dftables LOCATION)
-
-ADD_CUSTOM_COMMAND(
- COMMENT "Generating character tables (pcre_chartables.c) for current locale"
- DEPENDS dftables
- COMMAND ${DFTABLES_EXE}
- ARGS ${CMAKE_BINARY_DIR}/pcre_chartables.c
- OUTPUT ${CMAKE_BINARY_DIR}/pcre_chartables.c
-)
+OPTION(PCRE_REBUILD_CHARTABLES "Rebuild char tables" OFF)
+IF(PCRE_REBUILD_CHARTABLES)
+ ADD_EXECUTABLE(dftables dftables.c)
+
+ GET_TARGET_PROPERTY(DFTABLES_EXE dftables LOCATION)
+
+ ADD_CUSTOM_COMMAND(
+ COMMENT "Generating character tables (pcre_chartables.c) for current locale"
+ DEPENDS dftables
+ COMMAND ${DFTABLES_EXE}
+ ARGS ${CMAKE_BINARY_DIR}/pcre_chartables.c
+ OUTPUT ${CMAKE_BINARY_DIR}/pcre_chartables.c
+ )
+ELSE(PCRE_REBUILD_CHARTABLES)
+ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/pcre_chartables.c.dist
+ ${CMAKE_BINARY_DIR}/pcre_chartables.c
+ COPYONLY)
+ENDIF(PCRE_REBUILD_CHARTABLES)
# Source code
SET(PCRE_HEADERS ${CMAKE_BINARY_DIR}/pcre.h)
SET(PCRE_SOURCES
- ${CMAKE_BINARY_DIR}/pcre_chartables.c
- pcre_compile.c
- pcre_config.c
- pcre_dfa_exec.c
- pcre_exec.c
- pcre_fullinfo.c
- pcre_get.c
- pcre_globals.c
- pcre_info.c
- pcre_newline.c
- pcre_maketables.c
- pcre_ord2utf8.c
- pcre_refcount.c
- pcre_study.c
- pcre_tables.c
- pcre_try_flipped.c
- pcre_ucp_searchfuncs.c
- pcre_valid_utf8.c
- pcre_version.c
- pcre_xclass.c
+ ${CMAKE_BINARY_DIR}/pcre_chartables.c
+ pcre_compile.c
+ pcre_config.c
+ pcre_dfa_exec.c
+ pcre_exec.c
+ pcre_fullinfo.c
+ pcre_get.c
+ pcre_globals.c
+ pcre_info.c
+ pcre_newline.c
+ pcre_maketables.c
+ pcre_ord2utf8.c
+ pcre_refcount.c
+ pcre_study.c
+ pcre_tables.c
+ pcre_try_flipped.c
+ pcre_ucp_searchfuncs.c
+ pcre_valid_utf8.c
+ pcre_version.c
+ pcre_xclass.c
)
SET(PCREPOSIX_HEADERS pcreposix.h)
@@ -248,10 +278,10 @@ SET(PCREPOSIX_HEADERS pcreposix.h)
SET(PCREPOSIX_SOURCES pcreposix.c)
SET(PCRECPP_HEADERS
- pcrecpp.h
- pcre_scanner.h
- ${CMAKE_BINARY_DIR}/pcrecpparg.h
- ${CMAKE_BINARY_DIR}/pcre_stringpiece.h
+ pcrecpp.h
+ pcre_scanner.h
+ ${CMAKE_BINARY_DIR}/pcrecpparg.h
+ ${CMAKE_BINARY_DIR}/pcre_stringpiece.h
)
SET(PCRECPP_SOURCES
@@ -264,33 +294,26 @@ SET(PCRECPP_SOURCES
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
-IF(WIN32)
+IF(MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
-ENDIF(WIN32)
+ENDIF(MSVC)
SET(CMAKE_INCLUDE_CURRENT_DIR 1)
-
-#SET(CMAKE_DEBUG_POSTFIX "d")
+# needed to make sure to not link debug libs
+# against release libs and vice versa
+IF(WIN32)
+ SET(CMAKE_DEBUG_POSTFIX "d")
+ENDIF(WIN32)
# Libraries
-ADD_LIBRARY(pcre ${PCRE_HEADERS} ${PCRE_SOURCES})
-
+ADD_LIBRARY(pcre ${PCRE_HEADERS} ${PCRE_SOURCES} ${CMAKE_BINARY_DIR}/config.h)
ADD_LIBRARY(pcreposix ${PCREPOSIX_HEADERS} ${PCREPOSIX_SOURCES})
TARGET_LINK_LIBRARIES(pcreposix pcre)
-IF(NOT UNIX)
-SET_TARGET_PROPERTIES(pcre pcreposix
- PROPERTIES PREFIX ""
-)
-ENDIF(NOT UNIX)
-
IF(PCRE_BUILD_PCRECPP)
- ADD_LIBRARY(pcrecpp ${PCRECPP_HEADERS} ${PCRECPP_SOURCES})
- TARGET_LINK_LIBRARIES(pcrecpp pcre)
- IF(MINGW)
- SET_TARGET_PROPERTIES(pcrecpp PROPERTIES PREFIX "mingw-")
- ENDIF(MINGW)
+ ADD_LIBRARY(pcrecpp ${PCRECPP_HEADERS} ${PCRECPP_SOURCES})
+ TARGET_LINK_LIBRARIES(pcrecpp pcre)
ENDIF(PCRE_BUILD_PCRECPP)
# Executables
@@ -301,6 +324,13 @@ TARGET_LINK_LIBRARIES(pcretest pcreposix ${PCRETEST_LIBS})
ADD_EXECUTABLE(pcregrep pcregrep.c)
TARGET_LINK_LIBRARIES(pcregrep pcreposix ${PCREGREP_LIBS})
+ADD_EXECUTABLE(pcredemo pcredemo.c)
+TARGET_LINK_LIBRARIES(pcredemo pcreposix)
+IF(NOT BUILD_SHARED_LIBS)
+ # make sure to not use declspec(dllimport) in static mode on windows
+ 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)
@@ -389,4 +419,48 @@ INSTALL(FILES ${man1} DESTINATION man/man1)
INSTALL(FILES ${man3} DESTINATION man/man3)
INSTALL(FILES ${html} DESTINATION share/doc/pcre/html)
+# help, only for nice output
+IF(BUILD_SHARED_LIBS)
+ SET(BUILD_STATIC_LIBS OFF)
+ELSE(BUILD_SHARED_LIBS)
+ 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 " Use 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 ......... : zlib libraries not found!" )
+ENDIF(ZLIB_FOUND)
+IF(BZIP2_FOUND)
+ MESSAGE(STATUS " Link pcregrep with libbz2 ....... : " ${PCRE_SUPPORT_LIBBZ2})
+ELSE(BZIP2_FOUND)
+ MESSAGE(STATUS " Link pcregrep with libbz2 ....... : bzip2 libraries not found!" )
+ENDIF(BZIP2_FOUND)
+MESSAGE(STATUS " Link pcretest with libreadline .. : " ${PCRE_SUPPORT_LIBREADLINE})
+MESSAGE(STATUS "")
+
# end CMakeLists.txt
diff --git a/ChangeLog b/ChangeLog
index 441708d..57137dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,9 @@ Version 7.6 19-Jan-08
2. Patch to cut out the "long long" test in pcrecpp_unittest when
HAVE_LONG_LONG is not defined.
+
+3. Applied Christian Ehrlicher's patch to update the CMake build files to
+ bring them up to date and include new features.
Version 7.5 10-Jan-08
diff --git a/Makefile.am b/Makefile.am
index 92378a4..7b1babb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -358,6 +358,7 @@ endif
## CMake support
EXTRA_DIST += \
+ cmake \
CMakeLists.txt \
config-cmake.h.in
diff --git a/cmake/COPYING-CMAKE-SCRIPTS b/cmake/COPYING-CMAKE-SCRIPTS
new file mode 100644
index 0000000..4b41776
--- /dev/null
+++ b/cmake/COPYING-CMAKE-SCRIPTS
@@ -0,0 +1,22 @@
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/cmake/FindPackageHandleStandardArgs.cmake b/cmake/FindPackageHandleStandardArgs.cmake
new file mode 100644
index 0000000..151d812
--- /dev/null
+++ b/cmake/FindPackageHandleStandardArgs.cmake
@@ -0,0 +1,58 @@
+# FIND_PACKAGE_HANDLE_STANDARD_ARGS(NAME (DEFAULT_MSG|"Custom failure message") VAR1 ... )
+# This macro is intended to be used in FindXXX.cmake modules files.
+# It handles the REQUIRED and QUIET argument to FIND_PACKAGE() and
+# it also sets the <UPPERCASED_NAME>_FOUND variable.
+# The package is found if all variables listed are TRUE.
+# Example:
+#
+# FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibXml2 DEFAULT_MSG LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR)
+#
+# LibXml2 is considered to be found, if both LIBXML2_LIBRARIES and
+# LIBXML2_INCLUDE_DIR are valid. Then also LIBXML2_FOUND is set to TRUE.
+# If it is not found and REQUIRED was used, it fails with FATAL_ERROR,
+# independent whether QUIET was used or not.
+# If it is found, the location is reported using the VAR1 argument, so
+# here a message "Found LibXml2: /usr/lib/libxml2.so" will be printed out.
+# If the second argument is DEFAULT_MSG, the message in the failure case will
+# be "Could NOT find LibXml2", if you don't like this message you can specify
+# your own custom failure message there.
+
+MACRO(FIND_PACKAGE_HANDLE_STANDARD_ARGS _NAME _FAIL_MSG _VAR1 )
+
+ IF("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG")
+ IF (${_NAME}_FIND_REQUIRED)
+ SET(_FAIL_MESSAGE "Could not find REQUIRED package ${_NAME}")
+ ELSE (${_NAME}_FIND_REQUIRED)
+ SET(_FAIL_MESSAGE "Could not find OPTIONAL package ${_NAME}")
+ ENDIF (${_NAME}_FIND_REQUIRED)
+ ELSE("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG")
+ SET(_FAIL_MESSAGE "${_FAIL_MSG}")
+ ENDIF("${_FAIL_MSG}" STREQUAL "DEFAULT_MSG")
+
+ STRING(TOUPPER ${_NAME} _NAME_UPPER)
+
+ SET(${_NAME_UPPER}_FOUND TRUE)
+ IF(NOT ${_VAR1})
+ SET(${_NAME_UPPER}_FOUND FALSE)
+ ENDIF(NOT ${_VAR1})
+
+ FOREACH(_CURRENT_VAR ${ARGN})
+ IF(NOT ${_CURRENT_VAR})
+ SET(${_NAME_UPPER}_FOUND FALSE)
+ ENDIF(NOT ${_CURRENT_VAR})
+ ENDFOREACH(_CURRENT_VAR)
+
+ IF (${_NAME_UPPER}_FOUND)
+ IF (NOT ${_NAME}_FIND_QUIETLY)
+ MESSAGE(STATUS "Found ${_NAME}: ${${_VAR1}}")
+ ENDIF (NOT ${_NAME}_FIND_QUIETLY)
+ ELSE (${_NAME_UPPER}_FOUND)
+ IF (${_NAME}_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "${_FAIL_MESSAGE}")
+ ELSE (${_NAME}_FIND_REQUIRED)
+ IF (NOT ${_NAME}_FIND_QUIETLY)
+ MESSAGE(STATUS "${_FAIL_MESSAGE}")
+ ENDIF (NOT ${_NAME}_FIND_QUIETLY)
+ ENDIF (${_NAME}_FIND_REQUIRED)
+ ENDIF (${_NAME_UPPER}_FOUND)
+ENDMACRO(FIND_PACKAGE_HANDLE_STANDARD_ARGS)
diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake
new file mode 100644
index 0000000..6899f88
--- /dev/null
+++ b/cmake/FindReadline.cmake
@@ -0,0 +1,19 @@
+# from http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/FindReadline.cmake
+# http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/COPYING-CMAKE-SCRIPTS
+# --> BSD licensed
+#
+# GNU Readline library finder
+if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY)
+ set(READLINE_FOUND TRUE)
+else(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY)
+ FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h
+ /usr/include/readline
+ )
+
+ FIND_LIBRARY(READLINE_LIBRARY NAMES readline)
+ FIND_LIBRARY(NCURSES_LIBRARY NAMES ncurses )
+ include(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG NCURSES_LIBRARY READLINE_INCLUDE_DIR READLINE_LIBRARY )
+
+ MARK_AS_ADVANCED(READLINE_INCLUDE_DIR READLINE_LIBRARY)
+endif(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY)
diff --git a/config-cmake.h.in b/config-cmake.h.in
index 521fa55..5951af7 100644
--- a/config-cmake.h.in
+++ b/config-cmake.h.in
@@ -1,27 +1,35 @@
/* config.h for CMake builds */
-#cmakedefine HAVE_DIRENT_H
-#cmakedefine HAVE_UNISTD_H
-#cmakedefine HAVE_SYS_STAT_H
-#cmakedefine HAVE_SYS_TYPES_H
-#cmakedefine HAVE_TYPE_TRAITS_H
-#cmakedefine HAVE_BITS_TYPE_TRAITS_H
-
-#cmakedefine HAVE_BCOPY
-#cmakedefine HAVE_MEMMOVE
-#cmakedefine HAVE_STRERROR
-
-#cmakedefine PCRE_STATIC
-
-#cmakedefine SUPPORT_UTF8
-#cmakedefine SUPPORT_UCP
-#cmakedefine EBCDIC
-#cmakedefine BSR_ANYCRLF
-#cmakedefine NO_RECURSE
-
-#cmakedefine SUPPORT_LIBBZ2
-#cmakedefine SUPPORT_LIBZ
-#cmakedefine SUPPORT_LIBREADLINE
+#cmakedefine HAVE_DIRENT_H 1
+#cmakedefine HAVE_SYS_STAT_H 1
+#cmakedefine HAVE_SYS_TYPES_H 1
+#cmakedefine HAVE_UNISTD_H 1
+#cmakedefine HAVE_WINDOWS_H 1
+
+#cmakedefine HAVE_TYPE_TRAITS_H 1
+#cmakedefine HAVE_BITS_TYPE_TRAITS_H 1
+
+#cmakedefine HAVE_BCOPY 1
+#cmakedefine HAVE_MEMMOVE 1
+#cmakedefine HAVE_STRERROR 1
+#cmakedefine HAVE_STRTOLL 1
+#cmakedefine HAVE_STRTOQ 1
+#cmakedefine HAVE__STRTOI64 1
+
+#cmakedefine PCRE_STATIC 1
+
+#cmakedefine SUPPORT_UTF8 1
+#cmakedefine SUPPORT_UCP 1
+#cmakedefine EBCDIC 1
+#cmakedefine BSR_ANYCRLF 1
+#cmakedefine NO_RECURSE 1
+
+#cmakedefine HAVE_LONG_LONG 1
+#cmakedefine HAVE_UNSIGNED_LONG_LONG 1
+
+#cmakedefine SUPPORT_LIBBZ2 1
+#cmakedefine SUPPORT_LIBZ 1
+#cmakedefine SUPPORT_LIBREADLINE 1
#define NEWLINE @NEWLINE@
#define POSIX_MALLOC_THRESHOLD @PCRE_POSIX_MALLOC_THRESHOLD@