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