97 lines
3.6 KiB
CMake
97 lines
3.6 KiB
CMake
@PACKAGE_INIT@
|
|
include(CMakeFindDependencyMacro)
|
|
include("${CMAKE_CURRENT_LIST_DIR}/AdminiveCoreTargets.cmake")
|
|
if(NOT TARGET Adminive::Adminive)
|
|
add_library(Adminive::Adminive INTERFACE IMPORTED)
|
|
set_property(TARGET Adminive::Adminive PROPERTY INTERFACE_LINK_LIBRARIES Adminive::Core)
|
|
endif()
|
|
if(NOT TARGET Adminive::Http)
|
|
add_library(Adminive::Http INTERFACE IMPORTED)
|
|
set_property(TARGET Adminive::Http PROPERTY INTERFACE_LINK_LIBRARIES Adminive::Core)
|
|
endif()
|
|
set(_adminive_service_loaded FALSE)
|
|
set(_adminive_nlohmann_loaded FALSE)
|
|
set(_adminive_magic_enum_loaded FALSE)
|
|
set(_adminive_boost_pfr_loaded FALSE)
|
|
set(_adminive_httplib_loaded FALSE)
|
|
macro(_adminive_load_service)
|
|
if(NOT _adminive_service_loaded)
|
|
include("${CMAKE_CURRENT_LIST_DIR}/AdminiveServiceTargets.cmake")
|
|
set(_adminive_service_loaded TRUE)
|
|
endif()
|
|
endmacro()
|
|
macro(_adminive_load_nlohmann)
|
|
if(NOT _adminive_nlohmann_loaded)
|
|
find_dependency(nlohmann_json 3.12.0 CONFIG)
|
|
_adminive_load_service()
|
|
include("${CMAKE_CURRENT_LIST_DIR}/AdminiveNlohmannTargets.cmake")
|
|
set(_adminive_nlohmann_loaded TRUE)
|
|
endif()
|
|
endmacro()
|
|
macro(_adminive_load_magic_enum)
|
|
if(NOT _adminive_magic_enum_loaded)
|
|
find_dependency(magic_enum 0.9.8 CONFIG)
|
|
_adminive_load_service()
|
|
include("${CMAKE_CURRENT_LIST_DIR}/AdminiveMagicEnumTargets.cmake")
|
|
set(_adminive_magic_enum_loaded TRUE)
|
|
endif()
|
|
endmacro()
|
|
macro(_adminive_load_boost_pfr)
|
|
if(NOT _adminive_boost_pfr_loaded)
|
|
find_dependency(Boost CONFIG)
|
|
_adminive_load_service()
|
|
include("${CMAKE_CURRENT_LIST_DIR}/AdminiveBoostPfrTargets.cmake")
|
|
set(_adminive_boost_pfr_loaded TRUE)
|
|
endif()
|
|
endmacro()
|
|
macro(_adminive_load_httplib)
|
|
if(NOT _adminive_httplib_loaded)
|
|
find_dependency(httplib 0.48.0 CONFIG)
|
|
_adminive_load_service()
|
|
include("${CMAKE_CURRENT_LIST_DIR}/AdminiveHttplibTargets.cmake")
|
|
set(_adminive_httplib_loaded TRUE)
|
|
endif()
|
|
endmacro()
|
|
foreach(component IN LISTS Adminive_FIND_COMPONENTS)
|
|
if(component STREQUAL "Core" OR component STREQUAL "Http")
|
|
set(Adminive_${component}_FOUND TRUE)
|
|
elseif(component STREQUAL "Service")
|
|
_adminive_load_service()
|
|
set(Adminive_Service_FOUND TRUE)
|
|
elseif(component STREQUAL "Nlohmann")
|
|
_adminive_load_nlohmann()
|
|
set(Adminive_Nlohmann_FOUND TRUE)
|
|
elseif(component STREQUAL "MagicEnum")
|
|
_adminive_load_magic_enum()
|
|
set(Adminive_MagicEnum_FOUND TRUE)
|
|
elseif(component STREQUAL "BoostPfr")
|
|
_adminive_load_boost_pfr()
|
|
set(Adminive_BoostPfr_FOUND TRUE)
|
|
elseif(component STREQUAL "Httplib")
|
|
_adminive_load_httplib()
|
|
set(Adminive_Httplib_FOUND TRUE)
|
|
elseif(component STREQUAL "Default")
|
|
_adminive_load_nlohmann()
|
|
_adminive_load_magic_enum()
|
|
_adminive_load_httplib()
|
|
include("${CMAKE_CURRENT_LIST_DIR}/AdminiveDefaultTargets.cmake")
|
|
set(Adminive_Default_FOUND TRUE)
|
|
elseif(component STREQUAL "Drogon")
|
|
find_dependency(Drogon CONFIG)
|
|
if(TARGET drogon AND NOT TARGET Drogon::Drogon)
|
|
add_library(Drogon::Drogon ALIAS drogon)
|
|
endif()
|
|
_adminive_load_service()
|
|
include("${CMAKE_CURRENT_LIST_DIR}/AdminiveDrogonTargets.cmake")
|
|
set(Adminive_Drogon_FOUND TRUE)
|
|
else()
|
|
set(Adminive_${component}_FOUND FALSE)
|
|
endif()
|
|
endforeach()
|
|
unset(_adminive_service_loaded)
|
|
unset(_adminive_nlohmann_loaded)
|
|
unset(_adminive_magic_enum_loaded)
|
|
unset(_adminive_boost_pfr_loaded)
|
|
unset(_adminive_httplib_loaded)
|
|
check_required_components(Adminive)
|