diff options
author | Andres Mejia <amejia004@gmail.com> | 2013-01-31 23:00:11 -0500 |
---|---|---|
committer | Andres Mejia <amejia004@gmail.com> | 2013-01-31 23:00:11 -0500 |
commit | b89e4f7352758891cd024da25a317114f00567b9 (patch) | |
tree | 5d4359087e2dfc5a616db782ccbfa7a4a4ea9bca | |
parent | 192575157e04df7a7a2376183d7e6066e36907dc (diff) | |
download | libarchive-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.txt | 46 | ||||
-rw-r--r-- | build/cmake/FindPCREPOSIX.cmake | 25 | ||||
-rw-r--r-- | build/cmake/config.h.in | 6 |
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 |