Updating buildsystem files to closest as possible to file-sync plugin.
[gdataplugin.git] / cmake / modules / FindLibXml2.cmake
blob37c58a3a5612018b6f998573442aa538cbc86b33
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
13 #  BSD license.
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 
35                 PATHS
36                 /opt/local/include/
37                 /sw/include/
38                 /usr/local/include/
39                 /usr/include/
40         )
41         FIND_LIBRARY( _libxml2_link_DIR NAME xml2 libxml2 
42                 PATHS
43                 /opt/local/lib
44                 /sw/lib
45                 /usr/lib
46                 /usr/local/lib
47                 /usr/lib64
48                 /usr/local/lib64
49                 /opt/lib64
50         )
51         IF ( _libxml2_include_DIR AND _libxml2_link_DIR )
52                 SET ( _libxml2_FOUND TRUE )
53         ENDIF ( _libxml2_include_DIR AND _libxml2_link_DIR )
56         IF ( _libxml2_FOUND )
57                 SET ( LIBXML2_INCLUDE_DIRS ${_libxml2_include_DIR} )
58                 SET ( LIBXML2_LIBRARIES ${_libxml2_link_DIR} )
59         ENDIF ( _libxml2_FOUND )
61         # Report results
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 )