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