From a3eea0fb8867ab982dd62f1c9568a46f81796559 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 +++ CMakeLists.txt | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5162797f4..558dafacc 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/CMakeLists.txt b/CMakeLists.txt index cf242316f..595cd2aee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.15) -foreach(_policy CMP0111 CMP0126 CMP0135) +foreach(_policy CMP0111 CMP0126 CMP0135 CMP0141) if(POLICY ${_policy}) cmake_policy(SET ${_policy} NEW) set(CMAKE_POLICY_DEFAULT_${_policy} NEW) @@ -282,6 +282,11 @@ endif() if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") # u8path() function is deprecated but there is no sensible alternative and it might even get un-deprecated. add_definitions(-D_SILENCE_CXX20_U8PATH_DEPRECATION_WARNING) + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.25") + # 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 + set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$:EditAndContinue>") # Sets /ZI compiler option, see https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_DEBUG_INFORMATION_FORMAT.html + add_link_options("$<$:/INCREMENTAL>") + endif() endif() # Not a genexp because CMake doesn't support it