1 # - Try to find libxml2
2 # Find libxml2 headers, libraries and the answer to all questions.
4 # LIBXML2_FOUND True if libxml2 got found
5 # LIBXML2_INCLUDE_DIRS Location of libxml2 headers
6 # LIBXML2_LIBRARIES List of libaries to use libxml2
7 # LIBXML2_DEFINITIONS Definitions to compile libxml2
9 # Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
10 # Copyright (c) 2007 Alban Browaeys <prahal@yahoo.com>
12 # Redistribution and use is allowed according to the terms of the New
14 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
17 INCLUDE( FindPkgConfig )
18 # Take care about libxml2.pc settings
19 IF ( LibXml2_FIND_REQUIRED )
20 SET( _pkgconfig_REQUIRED "REQUIRED" )
21 ELSE ( LibXml2_FIND_REQUIRED )
22 SET( _pkgconfig_REQUIRED "" )
23 ENDIF ( LibXml2_FIND_REQUIRED )
25 IF ( LIBXML2_MIN_VERSION )
26 PKG_SEARCH_MODULE( LIBXML2 ${_pkgconfig_REQUIRED} libxml-2.0>=${LIBXML2_MIN_VERSION} )
27 ELSE ( LIBXML2_MIN_VERSION )
28 pkg_search_module( LIBXML2 ${_pkgconfig_REQUIRED} libxml-2.0 )
29 ENDIF ( LIBXML2_MIN_VERSION )
32 # Look for libxml-2.0 include dir and libraries w/o pkgconfig
33 IF ( NOT LIBXML2_FOUND AND NOT PKG_CONFIG_FOUND )
34 FIND_PATH( _libxml2_include_DIR libxml/xpath.h PATH_SUFFIXES libxml2
41 FIND_LIBRARY( _libxml2_link_DIR NAME xml2 libxml2
51 IF ( _libxml2_include_DIR AND _libxml2_link_DIR )
52 SET ( _libxml2_FOUND TRUE )
53 ENDIF ( _libxml2_include_DIR AND _libxml2_link_DIR )
57 SET ( LIBXML2_INCLUDE_DIRS ${_libxml2_include_DIR} )
58 SET ( LIBXML2_LIBRARIES ${_libxml2_link_DIR} )
59 ENDIF ( _libxml2_FOUND )
62 IF ( LIBXML2_LIBRARIES AND LIBXML2_INCLUDE_DIRS AND _libxml2_FOUND )
63 SET( LIBXML2_FOUND 1 )
64 IF ( NOT LibXml2_FIND_QUIETLY )
65 MESSAGE( STATUS "Found libxml2: ${LIBXML2_LIBRARIES} ${LIBXML2_INCLUDE_DIRS}" )
66 ENDIF ( NOT LibXml2_FIND_QUIETLY )
67 ELSE ( LIBXML2_LIBRARIES AND LIBXML2_INCLUDE_DIRS AND _libxml2_FOUND )
68 IF ( LibXml2_FIND_REQUIRED )
69 MESSAGE( SEND_ERROR "Could NOT find libxml2" )
70 ELSE ( LibXml2_FIND_REQUIRED )
71 IF ( NOT LibXml2_FIND_QUIETLY )
72 MESSAGE( STATUS "Could NOT find libxml2" )
73 ENDIF ( NOT LibXml2_FIND_QUIETLY )
74 ENDIF ( LibXml2_FIND_REQUIRED )
75 ENDIF ( LIBXML2_LIBRARIES AND LIBXML2_INCLUDE_DIRS AND _libxml2_FOUND )
77 ENDIF ( NOT LIBXML2_FOUND AND NOT PKG_CONFIG_FOUND )
79 # Hide advanced variables from CMake GUIs
80 MARK_AS_ADVANCED( LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIRS )