]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Redo check for pcreposix library.
authorAndres Mejia <amejia004@gmail.com>
Fri, 1 Feb 2013 04:00:11 +0000 (23:00 -0500)
committerAndres Mejia <amejia004@gmail.com>
Fri, 1 Feb 2013 04:00:11 +0000 (23:00 -0500)
Other check was broken, it did not set PCRE_STATIC when necessary nor did it add needed PCREPOSIX_LIBRARIES
for Visual Studio build.

CMakeLists.txt
build/cmake/FindPCREPOSIX.cmake [new file with mode: 0644]
build/cmake/config.h.in

index c277a6c6c5cd773867e88ed8a12d7acbbfd42b64..d23a88ca209a76f37f54e291735c0b67f249306f 100644 (file)
@@ -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 (file)
index 0000000..9e40620
--- /dev/null
@@ -0,0 +1,25 @@
+# - Find pcreposix\r
+# Find the native PCREPOSIX include and library\r
+#\r
+#  PCRE_INCLUDE_DIR    - where to find pcreposix.h, etc.\r
+#  PCREPOSIX_LIBRARIES - List of libraries when using libpcreposix.\r
+#  PCREPOSIX_FOUND     - True if libpcreposix found.\r
+\r
+IF (PCRE_INCLUDE_DIR)\r
+  # Already in cache, be silent\r
+  SET(PCRE_FIND_QUIETLY TRUE)\r
+ENDIF (PCRE_INCLUDE_DIR)\r
+\r
+FIND_PATH(PCRE_INCLUDE_DIR pcreposix.h)\r
+FIND_LIBRARY(PCREPOSIX_LIBRARY NAMES pcreposix libpcreposix)\r
+FIND_LIBRARY(PCRE_LIBRARY NAMES pcre libpcre)\r
+\r
+# handle the QUIETLY and REQUIRED arguments and set PCREPOSIX_FOUND to TRUE if \r
+# all listed variables are TRUE\r
+INCLUDE(FindPackageHandleStandardArgs)\r
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCREPOSIX DEFAULT_MSG PCREPOSIX_LIBRARY PCRE_INCLUDE_DIR)\r
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE DEFAULT_MSG PCRE_LIBRARY PCRE_INCLUDE_DIR)\r
+\r
+IF(PCREPOSIX_FOUND AND PCRE_FOUND)\r
+  SET(PCREPOSIX_LIBRARIES ${PCREPOSIX_LIBRARY} ${PCRE_LIBRARY})\r
+ENDIF(PCREPOSIX_FOUND AND PCRE_FOUND)\r
index 77b8d3bd2b02f35ffdb822af6a66ec8eab1bcede..0631195d695d548556acf0f1a1f0f9add18f6e10 100644 (file)
@@ -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