set(adminive_library_include_dir "${CMAKE_CURRENT_LIST_DIR}/include")
add_library(Adminive INTERFACE)
set_target_properties(Adminive PROPERTIES EXPORT_NAME Core)
add_library(Adminive::Adminive ALIAS Adminive)
add_library(Adminive::Core ALIAS Adminive)
add_library(Adminive::Http ALIAS Adminive)
target_include_directories(Adminive INTERFACE "$<BUILD_INTERFACE:${adminive_library_include_dir}>" "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
target_compile_features(Adminive INTERFACE cxx_std_20)
target_link_libraries(Adminive INTERFACE "$<BUILD_INTERFACE:structive::property_core>")
if (MSVC)
    target_compile_options(Adminive INTERFACE /utf-8 /Zc:__cplusplus /bigobj)
    if (ADMINIVE_PROPAGATE_MSVC_STRICT_MODE)
        target_compile_options(Adminive INTERFACE /permissive-)
    endif ()
endif ()
if (BUILD_TESTING)
    add_executable(Adminive_Core_Adapter_Test "${CMAKE_CURRENT_LIST_DIR}/tests/core_adapter_test.cpp")
    target_link_libraries(Adminive_Core_Adapter_Test PRIVATE Adminive::Core)
    adminive_register_test(Adminive_Core_Adapter_Test "unit;core;adapter")
    if (MSVC)
        target_compile_options(Adminive_Core_Adapter_Test PRIVATE /permissive-)
    endif ()
endif ()
install(TARGETS Adminive EXPORT AdminiveCoreTargets)
install(DIRECTORY "${adminive_library_include_dir}/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/../../third_party/Structive/core/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
