Copies the test/data directory to the binary directory so it can also be accessed when the project wasn't build in the source directory.
66 lines
2.0 KiB
CMake
66 lines
2.0 KiB
CMake
# The unit test executable.
|
|
set(JSON_UNITTEST_TARGET_NAME "json_unit")
|
|
add_executable(${JSON_UNITTEST_TARGET_NAME}
|
|
"src/catch.hpp"
|
|
"src/unit.cpp"
|
|
"src/unit-algorithms.cpp"
|
|
"src/unit-allocator.cpp"
|
|
"src/unit-capacity.cpp"
|
|
"src/unit-class_const_iterator.cpp"
|
|
"src/unit-class_iterator.cpp"
|
|
"src/unit-class_lexer.cpp"
|
|
"src/unit-class_parser.cpp"
|
|
"src/unit-comparison.cpp"
|
|
"src/unit-concepts.cpp"
|
|
"src/unit-constructor1.cpp"
|
|
"src/unit-constructor2.cpp"
|
|
"src/unit-convenience.cpp"
|
|
"src/unit-conversions.cpp"
|
|
"src/unit-deserialization.cpp"
|
|
"src/unit-element_access1.cpp"
|
|
"src/unit-element_access2.cpp"
|
|
"src/unit-inspection.cpp"
|
|
"src/unit-iterator_wrapper.cpp"
|
|
"src/unit-iterators1.cpp"
|
|
"src/unit-iterators2.cpp"
|
|
"src/unit-json_patch.cpp"
|
|
"src/unit-json_pointer.cpp"
|
|
"src/unit-modifiers.cpp"
|
|
"src/unit-pointer_access.cpp"
|
|
"src/unit-readme.cpp"
|
|
"src/unit-reference_access.cpp"
|
|
"src/unit-regression.cpp"
|
|
"src/unit-serialization.cpp"
|
|
"src/unit-testsuites.cpp"
|
|
"src/unit-unicode.cpp"
|
|
)
|
|
|
|
set_target_properties(${JSON_UNITTEST_TARGET_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>>"
|
|
)
|
|
|
|
|
|
string(COMPARE NOTEQUAL "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" JSON_HAS_SEPARATE_BUILDDIR)
|
|
|
|
if(${JSON_HAS_SEPARATE_BUILDDIR})
|
|
|
|
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/data" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
|
|
|
endif()
|
|
|
|
|
|
target_include_directories(${JSON_UNITTEST_TARGET_NAME} PRIVATE "src")
|
|
target_link_libraries(${JSON_UNITTEST_TARGET_NAME} ${JSON_TARGET_NAME})
|
|
|
|
add_test(NAME "${JSON_UNITTEST_TARGET_NAME}_default"
|
|
COMMAND ${JSON_UNITTEST_TARGET_NAME}
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
)
|
|
add_test(NAME "${JSON_UNITTEST_TARGET_NAME}_all"
|
|
COMMAND ${JSON_UNITTEST_TARGET_NAME} "*"
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
)
|