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 "$" "$") target_compile_features(Adminive INTERFACE cxx_std_20) target_link_libraries(Adminive INTERFACE "$") 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") set(adminive_core_public_headers adapter.hpp adminive.hpp amis.hpp collection.hpp composition.hpp concepts.hpp descriptor.hpp http.hpp json.hpp lock.hpp managed.hpp presentation.hpp status.hpp value.hpp view.hpp view_json.hpp) foreach(header IN LISTS adminive_core_public_headers) string(REPLACE ".hpp" "" header_name "${header}") string(REPLACE "_" "-" header_name "${header_name}") adminive_register_header_test("Adminive_Core_Header_${header_name}_Test" "adminive/${header}" Adminive::Core) endforeach() 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 "${ADMINIVE_STRUCTIVE_SOURCE_DIR}/core/include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")