From bca4664d1ab9d9b9e18969780a1b9713ee0f0c15 Mon Sep 17 00:00:00 2001 From: Aleksandr Orefkov Date: Tue, 2 Dec 2025 11:05:41 +0300 Subject: [PATCH] Add optional natvis link --- CMakeLists.txt | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1dbd492..e06f8b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,8 +21,13 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang) set(CLANG_COMPILER ON) endif() -option(SIMSTR_BUILD_TESTS "Построить тесты" ON) -option(SIMSTR_BENCHMARKS "Построить замеры производительности" Off) +if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC OR "${CMAKE_CXX_SIMULATE_ID} " STREQUAL "MSVC ") + set(CAN_LINK_NATVIS On) +endif() + +option(SIMSTR_BUILD_TESTS "Build tests" ON) +option(SIMSTR_BENCHMARKS "Build benchmarks" Off) +cmake_dependent_option(SIMSTR_LINK_NATVIS "Link natvis file" On CAN_LINK_NATVIS Off) add_library(simstr_simstr src/sstring.cpp @@ -50,15 +55,17 @@ endif(EMSCRIPTEN) message("Configuring simstr for [${CMAKE_BUILD_TYPE}]") -# Для MSVC подключаем natvis файл для красивой отладки -if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC OR "${CMAKE_CXX_SIMULATE_ID} " STREQUAL "MSVC ") - add_custom_command( - TARGET simstr_simstr PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/for_debug/simstr.natvis - ${CMAKE_BINARY_DIR}/simstr.natvis - ) - target_link_options(simstr_simstr PUBLIC "/natvis:${CMAKE_BINARY_DIR}/simstr.natvis") +if (SIMSTR_LINK_NATVIS) + # Для MSVC подключаем natvis файл для красивой отладки + if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC OR "${CMAKE_CXX_SIMULATE_ID} " STREQUAL "MSVC ") + add_custom_command( + TARGET simstr_simstr PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/for_debug/simstr.natvis + ${CMAKE_BINARY_DIR}/simstr.natvis + ) + target_link_options(simstr_simstr PUBLIC "/natvis:${CMAKE_BINARY_DIR}/simstr.natvis") + endif() endif() set_target_properties(