diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fb9f4c51b..e3b146b154 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,19 @@ target_include_directories( ${NLOHMANN_JSON_TARGET_NAME} INTERFACE $ ) - + +## add debug view defintion file for msvc (natvis) [cmake <= 3.2.2 does not support export of source files] +if (MSVC AND CMAKE_VERSION VERSION_GREATER "3.2.2") + set(NLOHMANN_ADD_NATVIS TRUE) + set(NLOHMANN_NATVIS_FILE "nlohmann_json.natvis") + target_sources( + ${NLOHMANN_JSON_TARGET_NAME} + INTERFACE + $ + $ + ) +endif() + ## ## TESTS ## create and configure the unit test target @@ -67,6 +79,12 @@ install( FILES ${NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE} ${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE} DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR} ) +if (NLOHMANN_ADD_NATVIS) + install( + FILES ${NLOHMANN_NATVIS_FILE} + DESTINATION . +) +endif() install( TARGETS ${NLOHMANN_JSON_TARGET_NAME} EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME} diff --git a/nlohmann_json.natvis b/nlohmann_json.natvis new file mode 100644 index 0000000000..63e3f8423d --- /dev/null +++ b/nlohmann_json.natvis @@ -0,0 +1,32 @@ + + + + null + {*(m_value.object)} + {*(m_value.array)} + {*(m_value.string)} + {m_value.boolean} + {m_value.number_integer} + {m_value.number_unsigned} + {m_value.number_float} + discarded + + + *(m_value.object),view(simple) + + + *(m_value.array),view(simple) + + + + + + + {second} + + second + + + + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c72867839f..89f5c22129 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -101,7 +101,7 @@ foreach(file ${files}) target_compile_definitions(${testcase} PRIVATE CATCH_CONFIG_FAST_COMPILE) target_include_directories(${testcase} PRIVATE "thirdparty/catch") - target_link_libraries(${testcase} ${JSON_TARGET_NAME}) + target_link_libraries(${testcase} ${NLOHMANN_JSON_TARGET_NAME}) if(NOT MSVC) set_target_properties(${testcase} PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-float-equal")