cmake_minimum_required(VERSION 3.0) project(json CXX) set(JSON_TARGET_NAME ${PROJECT_NAME}) set(JSON_UNITTEST_TARGET_NAME "json_unit") set(JSON_PACKAGE_NAME ${JSON_TARGET_NAME}) set(JSON_TARGETS_FILENAME "${JSON_PACKAGE_NAME}Targets.cmake") add_library(${JSON_TARGET_NAME} INTERFACE) target_include_directories(${JSON_TARGET_NAME} INTERFACE $) add_executable(${JSON_UNITTEST_TARGET_NAME} "test/catch.hpp" "test/unit.cpp") set_target_properties(${JSON_UNITTEST_TARGET_NAME} PROPERTIES CXX_STANDARD 11 CXX_STANDARD_REQUIRED ON COMPILE_DEFINITIONS "$<$:_SCL_SECURE_NO_WARNINGS>" COMPILE_OPTIONS "$<$:/EHsc;$<$:/Od>>") target_include_directories(${JSON_UNITTEST_TARGET_NAME} PRIVATE "test") target_link_libraries(${JSON_UNITTEST_TARGET_NAME} ${JSON_TARGET_NAME}) export(TARGETS ${JSON_TARGET_NAME} FILE "${CMAKE_BINARY_DIR}/${JSON_TARGETS_FILENAME}") export(PACKAGE ${JSON_PACKAGE_NAME})