aboutsummaryrefslogtreecommitdiff
path: root/modules/FindLibXml2.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/FindLibXml2.cmake')
-rw-r--r--modules/FindLibXml2.cmake85
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)