xref: /aosp_15_r20/external/tinyxml2/cmake/tinyxml2-config.cmake (revision 7485b22521f577cf944e5687361548d8993d8d2c)
1*7485b225SElliott Hughescmake_minimum_required(VERSION 3.15)
2*7485b225SElliott Hughes
3*7485b225SElliott Hughesset(tinyxml2_known_comps static shared)
4*7485b225SElliott Hughesset(tinyxml2_comp_static NO)
5*7485b225SElliott Hughesset(tinyxml2_comp_shared NO)
6*7485b225SElliott Hughesforeach (tinyxml2_comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
7*7485b225SElliott Hughes    if (tinyxml2_comp IN_LIST tinyxml2_known_comps)
8*7485b225SElliott Hughes        set(tinyxml2_comp_${tinyxml2_comp} YES)
9*7485b225SElliott Hughes    else ()
10*7485b225SElliott Hughes        set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
11*7485b225SElliott Hughes            "tinyxml2 does not recognize component `${tinyxml2_comp}`.")
12*7485b225SElliott Hughes        set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
13*7485b225SElliott Hughes        return()
14*7485b225SElliott Hughes    endif ()
15*7485b225SElliott Hughesendforeach ()
16*7485b225SElliott Hughes
17*7485b225SElliott Hughesif (tinyxml2_comp_static AND tinyxml2_comp_shared)
18*7485b225SElliott Hughes    set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
19*7485b225SElliott Hughes        "tinyxml2 `static` and `shared` components are mutually exclusive.")
20*7485b225SElliott Hughes    set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
21*7485b225SElliott Hughes    return()
22*7485b225SElliott Hughesendif ()
23*7485b225SElliott Hughes
24*7485b225SElliott Hughesset(tinyxml2_static_targets "${CMAKE_CURRENT_LIST_DIR}/tinyxml2-static-targets.cmake")
25*7485b225SElliott Hughesset(tinyxml2_shared_targets "${CMAKE_CURRENT_LIST_DIR}/tinyxml2-shared-targets.cmake")
26*7485b225SElliott Hughes
27*7485b225SElliott Hughesmacro(tinyxml2_load_targets type)
28*7485b225SElliott Hughes    if (NOT EXISTS "${tinyxml2_${type}_targets}")
29*7485b225SElliott Hughes        set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
30*7485b225SElliott Hughes            "tinyxml2 `${type}` libraries were requested but not found.")
31*7485b225SElliott Hughes        set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
32*7485b225SElliott Hughes        return()
33*7485b225SElliott Hughes    endif ()
34*7485b225SElliott Hughes    include("${tinyxml2_${type}_targets}")
35*7485b225SElliott Hughesendmacro()
36*7485b225SElliott Hughes
37*7485b225SElliott Hughesif (tinyxml2_comp_static)
38*7485b225SElliott Hughes    tinyxml2_load_targets(static)
39*7485b225SElliott Hugheselseif (tinyxml2_comp_shared)
40*7485b225SElliott Hughes    tinyxml2_load_targets(shared)
41*7485b225SElliott Hugheselseif (DEFINED tinyxml2_SHARED_LIBS AND tinyxml2_SHARED_LIBS)
42*7485b225SElliott Hughes    tinyxml2_load_targets(shared)
43*7485b225SElliott Hugheselseif (DEFINED tinyxml2_SHARED_LIBS AND NOT tinyxml2_SHARED_LIBS)
44*7485b225SElliott Hughes    tinyxml2_load_targets(static)
45*7485b225SElliott Hugheselseif (BUILD_SHARED_LIBS)
46*7485b225SElliott Hughes    if (EXISTS "${tinyxml2_shared_targets}")
47*7485b225SElliott Hughes        tinyxml2_load_targets(shared)
48*7485b225SElliott Hughes    else ()
49*7485b225SElliott Hughes        tinyxml2_load_targets(static)
50*7485b225SElliott Hughes    endif ()
51*7485b225SElliott Hugheselse ()
52*7485b225SElliott Hughes    if (EXISTS "${tinyxml2_static_targets}")
53*7485b225SElliott Hughes        tinyxml2_load_targets(static)
54*7485b225SElliott Hughes    else ()
55*7485b225SElliott Hughes        tinyxml2_load_targets(shared)
56*7485b225SElliott Hughes    endif ()
57*7485b225SElliott Hughesendif ()
58