xref: /aosp_15_r20/external/cronet/third_party/libxml/src/libxml2-config.cmake.in (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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