summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Mejia <amejia004@gmail.com>2013-01-31 23:00:11 -0500
committerAndres Mejia <amejia004@gmail.com>2013-01-31 23:00:11 -0500
commitb89e4f7352758891cd024da25a317114f00567b9 (patch)
tree5d4359087e2dfc5a616db782ccbfa7a4a4ea9bca
parent192575157e04df7a7a2376183d7e6066e36907dc (diff)
downloadlibarchive-b89e4f7352758891cd024da25a317114f00567b9.tar.gz
Redo check for pcreposix library.
Other check was broken, it did not set PCRE_STATIC when necessary nor did it add needed PCREPOSIX_LIBRARIES for Visual Studio build.
-rw-r--r--CMakeLists.txt46
-rw-r--r--build/cmake/FindPCREPOSIX.cmake25
-rw-r--r--build/cmake/config.h.in6
3 files changed, 41 insertions, 36 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c277a6c6..d23a88ca 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -890,51 +890,25 @@ IF(ENABLE_PCREPOSIX)
#
# If requested, try finding library for PCREPOSIX
#
- IF (PCRE_INCLUDE_DIRS)
- # Already in cache, be silent
- SET(PCREPOSIX_FIND_QUIETLY TRUE)
- ENDIF (PCRE_INCLUDE_DIRS)
-
- FIND_PATH(PCRE_INCLUDE_DIR pcreposix.h)
-
- SET(PCREPOSIX_NAMES pcreposix)
- FIND_LIBRARY(PCREPOSIX_LIBRARY NAMES ${PCREPOSIX_NAMES} )
-
- # handle the QUIETLY and REQUIRED arguments and set PCREPOSIX_FOUND to TRUE if
- # all listed variables are TRUE
- INCLUDE(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCREPOSIX DEFAULT_MSG PCREPOSIX_LIBRARY PCRE_INCLUDE_DIR)
-
+ FIND_PACKAGE(PCREPOSIX)
IF(PCREPOSIX_FOUND)
- SET( PCREPOSIX_LIBRARIES ${PCREPOSIX_LIBRARY} )
- SET( PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR} )
-
- IF(PCREPOSIX_LIBRARY)
- SET(CMAKE_REQUIRED_LIBRARIES ${PCREPOSIX_LIBRARY})
- ENDIF(PCREPOSIX_LIBRARY)
-
- IF(PCRE_INCLUDE_DIR)
- INCLUDE_DIRECTORIES(${PCRE_INCLUDE_DIR})
- SET(CMAKE_REQUIRED_INCLUDES ${PCRE_INCLUDE_DIR})
- ENDIF(PCRE_INCLUDE_DIR)
- LA_CHECK_INCLUDE_FILE("pcreposix.h" HAVE_PCREPOSIX_H)
-
+ SET(HAVE_LIBPCREPOSIX 1)
+ SET(HAVE_LIBPCRE 1)
+ SET(HAVE_PCREPOSIX_H 1)
+ INCLUDE_DIRECTORIES(${PCRE_INCLUDE_DIR})
+ LIST(APPEND ADDITIONAL_LIBS ${PCREPOSIX_LIBRARIES})
# Test if a macro is needed for the library.
TRY_MACRO_FOR_LIBRARY(
- "${PCRE_INCLUDE_DIR}" "${PCREPOSIX_LIBRARY}"
+ "${PCRE_INCLUDE_DIR}" "${PCREPOSIX_LIBRARIES}"
COMPILES
- "#include <stddef.h>\n#include <pcreposix.h>\nint main() {regex_t r;return regcomp(&r, \"\", 0);}"
+ "#include <pcreposix.h>\nint main() {regex_t r;return regcomp(&r, \"\", 0);}"
"PCRE_STATIC")
IF(PCRE_STATIC)
- # TODO: Need to link against libpcre if static linking
ADD_DEFINITIONS(-DPCRE_STATIC)
ENDIF(PCRE_STATIC)
- ELSE(PCREPOSIX_FOUND)
- SET( PCREPOSIX_LIBRARIES )
- SET( PCRE_INCLUDE_DIRS )
ENDIF(PCREPOSIX_FOUND)
-
- MARK_AS_ADVANCED( PCREPOSIX_LIBRARIES PCRE_INCLUDE_DIRS )
+ MARK_AS_ADVANCED(CLEAR PCRE_INCLUDE_DIR)
+ MARK_AS_ADVANCED(CLEAR PCREPOSIX_LIBRARIES)
ENDIF(ENABLE_PCREPOSIX)
IF(NOT PCREPOSIX_FOUND)
diff --git a/build/cmake/FindPCREPOSIX.cmake b/build/cmake/FindPCREPOSIX.cmake
new file mode 100644
index 00000000..9e40620f
--- /dev/null
+++ b/build/cmake/FindPCREPOSIX.cmake
@@ -0,0 +1,25 @@
+# - Find pcreposix
+# Find the native PCREPOSIX include and library
+#
+# PCRE_INCLUDE_DIR - where to find pcreposix.h, etc.
+# PCREPOSIX_LIBRARIES - List of libraries when using libpcreposix.
+# PCREPOSIX_FOUND - True if libpcreposix found.
+
+IF (PCRE_INCLUDE_DIR)
+ # Already in cache, be silent
+ SET(PCRE_FIND_QUIETLY TRUE)
+ENDIF (PCRE_INCLUDE_DIR)
+
+FIND_PATH(PCRE_INCLUDE_DIR pcreposix.h)
+FIND_LIBRARY(PCREPOSIX_LIBRARY NAMES pcreposix libpcreposix)
+FIND_LIBRARY(PCRE_LIBRARY NAMES pcre libpcre)
+
+# handle the QUIETLY and REQUIRED arguments and set PCREPOSIX_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCREPOSIX DEFAULT_MSG PCREPOSIX_LIBRARY PCRE_INCLUDE_DIR)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG PCRE_LIBRARY PCRE_INCLUDE_DIR)
+
+IF(PCREPOSIX_FOUND AND PCRE_FOUND)
+ SET(PCREPOSIX_LIBRARIES ${PCREPOSIX_LIBRARY} ${PCRE_LIBRARY})
+ENDIF(PCREPOSIX_FOUND AND PCRE_FOUND)
diff --git a/build/cmake/config.h.in b/build/cmake/config.h.in
index 77b8d3bd..0631195d 100644
--- a/build/cmake/config.h.in
+++ b/build/cmake/config.h.in
@@ -588,6 +588,12 @@ typedef uint64_t uintmax_t;
/* Define to 1 if you have the `lzo2' library (-llzo2). */
#cmakedefine HAVE_LIBLZO2 1
+/* Define to 1 if you have the `pcre' library (-lpcre). */
+#cmakedefine HAVE_LIBPCRE 1
+
+/* Define to 1 if you have the `pcreposix' library (-lpcreposix). */
+#cmakedefine HAVE_LIBPCREPOSIX 1
+
/* Define to 1 if you have the `xml2' library (-lxml2). */
#cmakedefine HAVE_LIBXML2 1