mirror of https://github.com/leethomason/tinyxml2
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.9 KiB
CMake
58 lines
1.9 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
|
|
set(tinyxml2_known_comps static shared)
|
|
set(tinyxml2_comp_static NO)
|
|
set(tinyxml2_comp_shared NO)
|
|
foreach (tinyxml2_comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
if (tinyxml2_comp IN_LIST tinyxml2_known_comps)
|
|
set(tinyxml2_comp_${tinyxml2_comp} YES)
|
|
else ()
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
|
"tinyxml2 does not recognize component `${tinyxml2_comp}`.")
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
|
return()
|
|
endif ()
|
|
endforeach ()
|
|
|
|
if (tinyxml2_comp_static AND tinyxml2_comp_shared)
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
|
"tinyxml2 `static` and `shared` components are mutually exclusive.")
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
|
return()
|
|
endif ()
|
|
|
|
set(tinyxml2_static_targets "${CMAKE_CURRENT_LIST_DIR}/tinyxml2-static-targets.cmake")
|
|
set(tinyxml2_shared_targets "${CMAKE_CURRENT_LIST_DIR}/tinyxml2-shared-targets.cmake")
|
|
|
|
macro(tinyxml2_load_targets type)
|
|
if (NOT EXISTS "${tinyxml2_${type}_targets}")
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE
|
|
"tinyxml2 `${type}` libraries were requested but not found.")
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
|
return()
|
|
endif ()
|
|
include("${tinyxml2_${type}_targets}")
|
|
endmacro()
|
|
|
|
if (tinyxml2_comp_static)
|
|
tinyxml2_load_targets(static)
|
|
elseif (tinyxml2_comp_shared)
|
|
tinyxml2_load_targets(shared)
|
|
elseif (DEFINED tinyxml2_SHARED_LIBS AND tinyxml2_SHARED_LIBS)
|
|
tinyxml2_load_targets(shared)
|
|
elseif (DEFINED tinyxml2_SHARED_LIBS AND NOT tinyxml2_SHARED_LIBS)
|
|
tinyxml2_load_targets(static)
|
|
elseif (BUILD_SHARED_LIBS)
|
|
if (EXISTS "${tinyxml2_shared_targets}")
|
|
tinyxml2_load_targets(shared)
|
|
else ()
|
|
tinyxml2_load_targets(static)
|
|
endif ()
|
|
else ()
|
|
if (EXISTS "${tinyxml2_static_targets}")
|
|
tinyxml2_load_targets(static)
|
|
else ()
|
|
tinyxml2_load_targets(shared)
|
|
endif ()
|
|
endif ()
|