summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Mejia <amejia004@gmail.com>2013-02-01 23:54:33 -0500
committerAndres Mejia <amejia004@gmail.com>2013-02-01 23:54:33 -0500
commit01c218d03772aae777bb45e9157087a3d0c49d3b (patch)
tree887f8517f55208a2cbfde1cce43ac5ae9700a219
parente8c8ec110b7b06e8615118c296300b9457c7d5d1 (diff)
downloadlibarchive-01c218d03772aae777bb45e9157087a3d0c49d3b.tar.gz
Change ordering of libraries to check for POSIX regular expression support.
New ordering is now LIBC followed by LIBREGEX followed by LIBPCREPOSIX.
-rw-r--r--CMakeLists.txt58
1 files changed, 31 insertions, 27 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f12737d..5dc5d1bd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -912,32 +912,7 @@ MARK_AS_ADVANCED(CLEAR LIBXML2_LIBRARIES)
#
# POSIX Regular Expression support
#
-IF(POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$")
- #
- # If requested, try finding library for PCREPOSIX
- #
- FIND_PACKAGE(PCREPOSIX)
- IF(PCREPOSIX_FOUND)
- 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_LIBRARIES}"
- COMPILES
- "#include <pcreposix.h>\nint main() {regex_t r;return regcomp(&r, \"\", 0);}"
- "WITHOUT_PCRE_STATIC;PCRE_STATIC")
- IF(NOT WITHOUT_PCRE_STATIC AND PCRE_STATIC)
- ADD_DEFINITIONS(-DPCRE_STATIC)
- ENDIF(NOT WITHOUT_PCRE_STATIC AND PCRE_STATIC)
- ENDIF(PCREPOSIX_FOUND)
- MARK_AS_ADVANCED(CLEAR PCRE_INCLUDE_DIR)
- MARK_AS_ADVANCED(CLEAR PCREPOSIX_LIBRARIES)
-ENDIF(POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$")
-
-IF(NOT PCREPOSIX_FOUND AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBC|LIBREGEX)$")
+IF(POSIX_REGEX_LIB MATCHES "^(AUTO|LIBC|LIBREGEX)$")
#
# If PCREPOSIX is not found or not requested, try using regex
# from libc or libregex
@@ -982,7 +957,36 @@ IF(NOT PCREPOSIX_FOUND AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBC|LIBREGEX)$")
CMAKE_POP_CHECK_STATE() # Restore the state of the variables
ENDIF(NOT HAVE_REGCOMP_LIBC)
ENDIF(REGEX_INCLUDE_DIR)
-ENDIF(NOT PCREPOSIX_FOUND AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBC|LIBREGEX)$")
+ IF(HAVE_REGCOMP_LIBC OR HAVE_REGCOMP_LIBREGEX)
+ SET(FOUND_POSIX_REGEX_LIB 1)
+ ENDIF(HAVE_REGCOMP_LIBC OR HAVE_REGCOMP_LIBREGEX)
+ENDIF(POSIX_REGEX_LIB MATCHES "^(AUTO|LIBC|LIBREGEX)$")
+
+IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$")
+ #
+ # If requested, try finding library for PCREPOSIX
+ #
+ FIND_PACKAGE(PCREPOSIX)
+ IF(PCREPOSIX_FOUND)
+ 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_LIBRARIES}"
+ COMPILES
+ "#include <pcreposix.h>\nint main() {regex_t r;return regcomp(&r, \"\", 0);}"
+ "WITHOUT_PCRE_STATIC;PCRE_STATIC")
+ IF(NOT WITHOUT_PCRE_STATIC AND PCRE_STATIC)
+ ADD_DEFINITIONS(-DPCRE_STATIC)
+ ENDIF(NOT WITHOUT_PCRE_STATIC AND PCRE_STATIC)
+ ENDIF(PCREPOSIX_FOUND)
+ MARK_AS_ADVANCED(CLEAR PCRE_INCLUDE_DIR)
+ MARK_AS_ADVANCED(CLEAR PCREPOSIX_LIBRARIES)
+ENDIF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$")
+
#
# Check functions
#