From 9eaedba7832572a0e59963a7c49fa10261a80e1e Mon Sep 17 00:00:00 2001 From: obligaron Date: Sun, 2 Feb 2025 21:40:01 +0100 Subject: [PATCH] MSVC: Enable Edit & Continue in debug builds --- .gitignore | 3 +++ CMake/functions/devilutionx_library.cmake | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5162797f416..558dafacc58 100644 --- a/.gitignore +++ b/.gitignore @@ -161,6 +161,9 @@ ipch/ # Visual Studio Trace Files *.e2e +# Visual Studio Edit & Continue +enc_temp_folder + # TFS 2012 Local Workspace $tf/ diff --git a/CMake/functions/devilutionx_library.cmake b/CMake/functions/devilutionx_library.cmake index f40fa6a0910..e90f69e073c 100644 --- a/CMake/functions/devilutionx_library.cmake +++ b/CMake/functions/devilutionx_library.cmake @@ -37,7 +37,13 @@ function(add_devilutionx_library NAME) target_link_libraries(${NAME} PUBLIC $<${DEVILUTIONX_STATIC_CXX_STDLIB_GENEX}:-static-libgcc;-static-libstdc++>) endif() - if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + # This enables Edit & Continue support, see https://learn.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio#edit-and-continue-for-cmake-projects + target_compile_options(${NAME} PUBLIC "/ZI") + target_link_options(${NAME} PUBLIC "/INCREMENTAL") + endif() + else() # Note: For Valgrind support. genex_for_option(DEBUG) target_compile_options(${NAME} PUBLIC $<${DEBUG_GENEX}:-fno-omit-frame-pointer>)