diff options
Diffstat (limited to 'modules/FindLibXml2.cmake')
-rw-r--r-- | modules/FindLibXml2.cmake | 85 |
1 files changed, 50 insertions, 35 deletions
diff --git a/modules/FindLibXml2.cmake b/modules/FindLibXml2.cmake index deb09c65..b7914be1 100644 --- a/modules/FindLibXml2.cmake +++ b/modules/FindLibXml2.cmake @@ -5,39 +5,54 @@ # LIBXML2_INCLUDE_DIR - the LibXml2 include directory # LIBXML2_LIBRARIES - the libraries needed to use LibXml2 # LIBXML2_DEFINITIONS - Compiler switches required for using LibXml2 -# -IF (NOT WIN32) - # use pkg-config to get the directories and then use these values - # in the FIND_PATH() and FIND_LIBRARY() calls - INCLUDE(UsePkgConfig) - PKGCONFIG(libxml-2.0 _LibXml2IncDir _LibXml2LinkDir _LibXml2LinkFlags _LibXml2Cflags) - set(LIBXML2_DEFINITIONS ${_LibXml2Cflags}) -ENDIF (NOT WIN32) - -FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h - PATHS - ${_LibXml2IncDir} - PATH_SUFFIXES libxml2 -) - -FIND_LIBRARY(LIBXML2_LIBRARIES NAMES xml2 libxml2 - PATHS - ${_LibXml2LinkDir} -) - -if (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) - set(LIBXML2_FOUND TRUE) -endif (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) - -if (LIBXML2_FOUND) - if (NOT LibXml2_FIND_QUIETLY) - message(STATUS "Found LibXml2: ${LIBXML2_LIBRARIES}") - endif (NOT LibXml2_FIND_QUIETLY) -else (LIBXML2_FOUND) - if (LibXml2_FIND_REQUIRED) - message(SEND_ERROR "Could NOT find LibXml2") - endif (LibXml2_FIND_REQUIRED) -endif (LIBXML2_FOUND) - -MARK_AS_ADVANCED(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES) +IF (CACHED_LIBXML2) + + # in cache already + IF ("${CACHED_LIBXML2}" STREQUAL "YES") + SET(LIBXML2_FOUND TRUE) + ENDIF ("${CACHED_LIBXML2}" STREQUAL "YES") + +ELSE (CACHED_LIBXML2) + + IF (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + INCLUDE(UsePkgConfig) + PKGCONFIG(libxml-2.0 _LibXml2IncDir _LibXml2LinkDir _LibXml2LinkFlags _LibXml2Cflags) + set(LIBXML2_DEFINITIONS ${_LibXml2Cflags}) + ENDIF (NOT WIN32) + + FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h + PATHS + ${_LibXml2IncDir} + PATH_SUFFIXES libxml2 + ) + + FIND_LIBRARY(LIBXML2_LIBRARIES NAMES xml2 libxml2 + PATHS + ${_LibXml2LinkDir} + ) + + if (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + set(LIBXML2_FOUND TRUE) + set(CACHED_LIBXML2 "YES") + else (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + set(CACHED_LIBXML2 "NO") + endif (LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES) + + if (LIBXML2_FOUND) + if (NOT LibXml2_FIND_QUIETLY) + message(STATUS "Found LibXml2: ${LIBXML2_LIBRARIES}") + endif (NOT LibXml2_FIND_QUIETLY) + else (LIBXML2_FOUND) + if (LibXml2_FIND_REQUIRED) + message(SEND_ERROR "Could NOT find LibXml2") + endif (LibXml2_FIND_REQUIRED) + endif (LIBXML2_FOUND) + + MARK_AS_ADVANCED(LIBXML2_INCLUDE_DIR LIBXML2_LIBRARIES) + + SET(CACHED_LIBXML2 ${CACHED_LIBXML2} CACHE INTERNAL "If libxml2 was checked") + +ENDIF (CACHED_LIBXML2) |