#
# 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
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
#