Skip to content

Commit

Permalink
Merge pull request #247 from robertmrk/feature/cmake-cleanup
Browse files Browse the repository at this point in the history
Define CMake/CTest tests
  • Loading branch information
nlohmann committed May 18, 2016
2 parents 8376171 + 639d632 commit 25d60b7
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 11 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ cmake_minimum_required(VERSION 3.0)
# define the project
project(nlohmann_json VERSION 2.0.0 LANGUAGES CXX)

enable_testing()

option(BuildTests "Build the unit tests" ON)

# define project variables
Expand Down
3 changes: 1 addition & 2 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@ build_script:
- cmake . -G "Visual Studio 14 2015"
- cmake --build . --config Release
test_script:
- test\Release\json_unit.exe
- test\Release\json_unit.exe "*"
- ctest -C Release -V
22 changes: 13 additions & 9 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
# The unit test executable.
add_executable(json_unit
set(JSON_UNITTEST_TARGET_NAME "json_unit")
add_executable(${JSON_UNITTEST_TARGET_NAME}
"src/catch.hpp"
"src/unit.cpp"
)

set_target_properties(json_unit PROPERTIES
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>>"
)

# Install the test binary.
install(TARGETS json_unit RUNTIME DESTINATION test/bin)
target_include_directories(${JSON_UNITTEST_TARGET_NAME} PRIVATE "src")
target_link_libraries(${JSON_UNITTEST_TARGET_NAME} ${JSON_TARGET_NAME})

# Copy the test data to the install tree.
install(DIRECTORY data/ DESTINATION test/data)

target_include_directories(json_unit PRIVATE "src")
target_link_libraries(json_unit ${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}
)

0 comments on commit 25d60b7

Please sign in to comment.