1*7c568831SAndroid Build Coastguard Worker# libxml2-config.cmake 2*7c568831SAndroid Build Coastguard Worker# -------------------- 3*7c568831SAndroid Build Coastguard Worker# 4*7c568831SAndroid Build Coastguard Worker# Libxml2 cmake module. 5*7c568831SAndroid Build Coastguard Worker# This module sets the following variables: 6*7c568831SAndroid Build Coastguard Worker# 7*7c568831SAndroid Build Coastguard Worker# :: 8*7c568831SAndroid Build Coastguard Worker# 9*7c568831SAndroid Build Coastguard Worker# LIBXML2_FOUND - True if libxml2 headers and libraries were found 10*7c568831SAndroid Build Coastguard Worker# LIBXML2_INCLUDE_DIR - Directory where LibXml2 headers are located. 11*7c568831SAndroid Build Coastguard Worker# LIBXML2_INCLUDE_DIRS - list of the include directories needed to use LibXml2. 12*7c568831SAndroid Build Coastguard Worker# LIBXML2_LIBRARY - path to the LibXml2 library. 13*7c568831SAndroid Build Coastguard Worker# LIBXML2_LIBRARIES - xml2 libraries to link against. 14*7c568831SAndroid Build Coastguard Worker# LIBXML2_DEFINITIONS - the compiler switches required for using LibXml2. 15*7c568831SAndroid Build Coastguard Worker# LIBXML2_VERSION_MAJOR - The major version of libxml2. 16*7c568831SAndroid Build Coastguard Worker# LIBXML2_VERSION_MINOR - The minor version of libxml2. 17*7c568831SAndroid Build Coastguard Worker# LIBXML2_VERSION_PATCH - The patch version of libxml2. 18*7c568831SAndroid Build Coastguard Worker# LIBXML2_VERSION_STRING - version number as a string (ex: "2.3.4") 19*7c568831SAndroid Build Coastguard Worker# LIBXML2_MODULES - whether libxml2 has dso support 20*7c568831SAndroid Build Coastguard Worker# LIBXML2_XMLLINT_EXECUTABLE - path to the XML checking tool xmllint coming with LibXml2 21*7c568831SAndroid Build Coastguard Worker# 22*7c568831SAndroid Build Coastguard Worker# The following targets are defined: 23*7c568831SAndroid Build Coastguard Worker# 24*7c568831SAndroid Build Coastguard Worker# LibXml2::LibXml2 - the LibXml2 library 25*7c568831SAndroid Build Coastguard Worker# LibXml2::xmllint - the xmllint command-line executable 26*7c568831SAndroid Build Coastguard Worker 27*7c568831SAndroid Build Coastguard Workerget_filename_component(_libxml2_rootdir ${CMAKE_CURRENT_LIST_DIR}/../../../ ABSOLUTE) 28*7c568831SAndroid Build Coastguard Worker 29*7c568831SAndroid Build Coastguard Workerset(LIBXML2_VERSION_MAJOR @LIBXML_MAJOR_VERSION@) 30*7c568831SAndroid Build Coastguard Workerset(LIBXML2_VERSION_MINOR @LIBXML_MINOR_VERSION@) 31*7c568831SAndroid Build Coastguard Workerset(LIBXML2_VERSION_MICRO @LIBXML_MICRO_VERSION@) 32*7c568831SAndroid Build Coastguard Workerset(LIBXML2_VERSION_STRING "@VERSION@") 33*7c568831SAndroid Build Coastguard Workerset(LIBXML2_DEFINITIONS "@XML_CFLAGS@") 34*7c568831SAndroid Build Coastguard Workerset(LIBXML2_INSTALL_PREFIX ${_libxml2_rootdir}) 35*7c568831SAndroid Build Coastguard Workerset(LIBXML2_INCLUDE_DIR ${_libxml2_rootdir}/include/libxml2) 36*7c568831SAndroid Build Coastguard Workerset(LIBXML2_LIBRARY_DIR ${_libxml2_rootdir}/lib) 37*7c568831SAndroid Build Coastguard Worker 38*7c568831SAndroid Build Coastguard Workerfind_library(LIBXML2_LIBRARY NAMES xml2 HINTS ${LIBXML2_LIBRARY_DIR} NO_DEFAULT_PATH) 39*7c568831SAndroid Build Coastguard Workerfind_program(LIBXML2_XMLCATALOG_EXECUTABLE NAMES xmlcatalog HINTS ${_libxml2_rootdir}/bin NO_DEFAULT_PATH) 40*7c568831SAndroid Build Coastguard Workerfind_program(LIBXML2_XMLLINT_EXECUTABLE NAMES xmllint HINTS ${_libxml2_rootdir}/bin NO_DEFAULT_PATH) 41*7c568831SAndroid Build Coastguard Worker 42*7c568831SAndroid Build Coastguard Workerset(LIBXML2_LIBRARIES ${LIBXML2_LIBRARY}) 43*7c568831SAndroid Build Coastguard Workerset(LIBXML2_INCLUDE_DIRS ${LIBXML2_INCLUDE_DIR}) 44*7c568831SAndroid Build Coastguard Workerunset(LIBXML2_INTERFACE_LINK_LIBRARIES) 45*7c568831SAndroid Build Coastguard Worker 46*7c568831SAndroid Build Coastguard Workerinclude(CMakeFindDependencyMacro) 47*7c568831SAndroid Build Coastguard Worker 48*7c568831SAndroid Build Coastguard Workerset(LIBXML2_WITH_ICONV @WITH_ICONV@) 49*7c568831SAndroid Build Coastguard Workerset(LIBXML2_WITH_THREADS @WITH_THREADS@) 50*7c568831SAndroid Build Coastguard Workerset(LIBXML2_WITH_ICU @WITH_ICU@) 51*7c568831SAndroid Build Coastguard Workerset(LIBXML2_WITH_LZMA @WITH_LZMA@) 52*7c568831SAndroid Build Coastguard Workerset(LIBXML2_WITH_ZLIB @WITH_ZLIB@) 53*7c568831SAndroid Build Coastguard Worker 54*7c568831SAndroid Build Coastguard Workerif(LIBXML2_WITH_ICONV) 55*7c568831SAndroid Build Coastguard Worker find_dependency(Iconv) 56*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_LIBRARIES ${Iconv_LIBRARIES}) 57*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_INCLUDE_DIRS ${Iconv_INCLUDE_DIRS}) 58*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "Iconv::Iconv") 59*7c568831SAndroid Build Coastguard Worker if(NOT Iconv_FOUND) 60*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) 61*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Iconv dependency was not found") 62*7c568831SAndroid Build Coastguard Worker return() 63*7c568831SAndroid Build Coastguard Worker endif() 64*7c568831SAndroid Build Coastguard Workerendif() 65*7c568831SAndroid Build Coastguard Worker 66*7c568831SAndroid Build Coastguard Workerif(LIBXML2_WITH_THREADS) 67*7c568831SAndroid Build Coastguard Worker find_dependency(Threads) 68*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) 69*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:Threads::Threads>") 70*7c568831SAndroid Build Coastguard Worker if(NOT Threads_FOUND) 71*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) 72*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Threads dependency was not found") 73*7c568831SAndroid Build Coastguard Worker return() 74*7c568831SAndroid Build Coastguard Worker endif() 75*7c568831SAndroid Build Coastguard Workerendif() 76*7c568831SAndroid Build Coastguard Worker 77*7c568831SAndroid Build Coastguard Workerif(LIBXML2_WITH_ICU) 78*7c568831SAndroid Build Coastguard Worker find_dependency(ICU COMPONENTS data i18n uc) 79*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_LIBRARIES ${ICU_LIBRARIES}) 80*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:ICU::data>;\$<LINK_ONLY:ICU::i18n>;\$<LINK_ONLY:ICU::uc>") 81*7c568831SAndroid Build Coastguard Worker if(NOT ICU_FOUND) 82*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) 83*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "ICU dependency was not found") 84*7c568831SAndroid Build Coastguard Worker return() 85*7c568831SAndroid Build Coastguard Worker endif() 86*7c568831SAndroid Build Coastguard Workerendif() 87*7c568831SAndroid Build Coastguard Worker 88*7c568831SAndroid Build Coastguard Workerif(LIBXML2_WITH_LZMA) 89*7c568831SAndroid Build Coastguard Worker find_dependency(LibLZMA) 90*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_LIBRARIES ${LIBLZMA_LIBRARIES}) 91*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:LibLZMA::LibLZMA>") 92*7c568831SAndroid Build Coastguard Worker if(NOT LibLZMA_FOUND) 93*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) 94*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "LibLZMA dependency was not found") 95*7c568831SAndroid Build Coastguard Worker return() 96*7c568831SAndroid Build Coastguard Worker endif() 97*7c568831SAndroid Build Coastguard Workerendif() 98*7c568831SAndroid Build Coastguard Worker 99*7c568831SAndroid Build Coastguard Workerif(LIBXML2_WITH_ZLIB) 100*7c568831SAndroid Build Coastguard Worker find_dependency(ZLIB) 101*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_LIBRARIES ${ZLIB_LIBRARIES}) 102*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:ZLIB::ZLIB>") 103*7c568831SAndroid Build Coastguard Worker if(NOT ZLIB_FOUND) 104*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) 105*7c568831SAndroid Build Coastguard Worker set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "ZLIB dependency was not found") 106*7c568831SAndroid Build Coastguard Worker return() 107*7c568831SAndroid Build Coastguard Worker endif() 108*7c568831SAndroid Build Coastguard Workerendif() 109*7c568831SAndroid Build Coastguard Worker 110*7c568831SAndroid Build Coastguard Workerif(UNIX) 111*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_LIBRARIES m) 112*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:m>") 113*7c568831SAndroid Build Coastguard Workerendif() 114*7c568831SAndroid Build Coastguard Worker 115*7c568831SAndroid Build Coastguard Workerif(WIN32) 116*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_LIBRARIES ws2_32) 117*7c568831SAndroid Build Coastguard Worker list(APPEND LIBXML2_INTERFACE_LINK_LIBRARIES "\$<LINK_ONLY:ws2_32>") 118*7c568831SAndroid Build Coastguard Workerendif() 119*7c568831SAndroid Build Coastguard Worker 120*7c568831SAndroid Build Coastguard Worker# whether libxml2 has dso support 121*7c568831SAndroid Build Coastguard Workerset(LIBXML2_MODULES @WITH_MODULES@) 122*7c568831SAndroid Build Coastguard Worker 123*7c568831SAndroid Build Coastguard Workermark_as_advanced(LIBXML2_LIBRARY LIBXML2_XMLCATALOG_EXECUTABLE LIBXML2_XMLLINT_EXECUTABLE) 124*7c568831SAndroid Build Coastguard Worker 125*7c568831SAndroid Build Coastguard Workerif(DEFINED LIBXML2_LIBRARY AND DEFINED LIBXML2_INCLUDE_DIRS) 126*7c568831SAndroid Build Coastguard Worker set(LIBXML2_FOUND TRUE) 127*7c568831SAndroid Build Coastguard Workerendif() 128*7c568831SAndroid Build Coastguard Worker 129*7c568831SAndroid Build Coastguard Workerif(NOT TARGET LibXml2::LibXml2 AND DEFINED LIBXML2_LIBRARY AND DEFINED LIBXML2_INCLUDE_DIRS) 130*7c568831SAndroid Build Coastguard Worker add_library(LibXml2::LibXml2 UNKNOWN IMPORTED) 131*7c568831SAndroid Build Coastguard Worker set_target_properties(LibXml2::LibXml2 PROPERTIES IMPORTED_LOCATION "${LIBXML2_LIBRARY}") 132*7c568831SAndroid Build Coastguard Worker set_target_properties(LibXml2::LibXml2 PROPERTIES INTERFACE_COMPILE_OPTIONS "${LIBXML2_DEFINITIONS}") 133*7c568831SAndroid Build Coastguard Worker set_target_properties(LibXml2::LibXml2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBXML2_INCLUDE_DIRS}") 134*7c568831SAndroid Build Coastguard Worker set_target_properties(LibXml2::LibXml2 PROPERTIES INTERFACE_LINK_LIBRARIES "${LIBXML2_INTERFACE_LINK_LIBRARIES}") 135*7c568831SAndroid Build Coastguard Workerendif() 136*7c568831SAndroid Build Coastguard Worker 137*7c568831SAndroid Build Coastguard Workerif(NOT TARGET LibXml2::xmlcatalog AND DEFINED LIBXML2_XMLCATALOG_EXECUTABLE) 138*7c568831SAndroid Build Coastguard Worker add_executable(LibXml2::xmlcatalog IMPORTED) 139*7c568831SAndroid Build Coastguard Worker set_target_properties(LibXml2::xmlcatalog PROPERTIES IMPORTED_LOCATION "${LIBXML2_XMLCATALOG_EXECUTABLE}") 140*7c568831SAndroid Build Coastguard Workerendif() 141*7c568831SAndroid Build Coastguard Worker 142*7c568831SAndroid Build Coastguard Workerif(NOT TARGET LibXml2::xmllint AND DEFINED LIBXML2_XMLLINT_EXECUTABLE) 143*7c568831SAndroid Build Coastguard Worker add_executable(LibXml2::xmllint IMPORTED) 144*7c568831SAndroid Build Coastguard Worker set_target_properties(LibXml2::xmllint PROPERTIES IMPORTED_LOCATION "${LIBXML2_XMLLINT_EXECUTABLE}") 145*7c568831SAndroid Build Coastguard Workerendif() 146