xref: /aosp_15_r20/external/libxml2/libxml2-config.cmake.in (revision 7c5688314b92172186c154356a6374bf7684c3ca)
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