Commit 28f73ed4 authored by Robert Marki's avatar Robert Marki

Refactor CMake listfile to define an interface imported library

Define the library as an interface imported library so other targets
can use the library as a dependency and use the interface properties
of the library.
parent 3ca1bfdd
......@@ -2,24 +2,17 @@ cmake_minimum_required(VERSION 2.8)
project(json CXX)
add_executable(json_unit
src/json.hpp test/catch.hpp test/unit.cpp
)
add_library(${PROJECT_NAME} INTERFACE IMPORTED GLOBAL)
set_target_properties(${PROJECT_NAME} PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/src")
if(MSVC)
set(CMAKE_CXX_FLAGS
"/EHsc"
)
STRING(REPLACE "/O2" "/Od" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
add_definitions(-D_SCL_SECURE_NO_WARNINGS)
else(MSVC)
set(CMAKE_CXX_FLAGS
"-std=c++11"
)
endif(MSVC)
include_directories(
src test
)
set(UNIT_TEST_NAME "json_unit")
add_executable(${UNIT_TEST_NAME}
"test/catch.hpp" "test/unit.cpp")
set_target_properties(${UNIT_TEST_NAME} PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
COMPILE_DEFINITIONS "$<$<CXX_COMPILER_ID:MSVC>:_SCL_SECURE_NO_WARNINGS>"
COMPILE_OPTIONS "$<$<CXX_COMPILER_ID:MSVC>:/EHsc;$<$<CONFIG:Release>:/Od>>")
target_include_directories(${UNIT_TEST_NAME} PRIVATE "test")
target_link_libraries(${UNIT_TEST_NAME} ${PROJECT_NAME})
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment