From 9825c0d14dc1a6e24978fbe03a52d1ef344504ba Mon Sep 17 00:00:00 2001 From: Alex Selimov Date: Wed, 17 Sep 2025 20:47:14 -0400 Subject: [PATCH] Add Cmake debug configurations and presets --- CMakeLists.txt | 19 +++++++++++++++++++ CMakePresets.json | 31 +++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 CMakePresets.json diff --git a/CMakeLists.txt b/CMakeLists.txt index b7394b0..07aacb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,25 @@ add_compile_options($<$:-Wno-pedantic>) set(CMAKE_CXX_STANDARD 17) +# Add debug configuration +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(CMAKE_CUDA_FLAGS_DEBUG "-g -G -O0 --generate-line-info") +elseif(CMAKE_BUILD_TYPE STREQUAL "Release") + set(CMAKE_CUDA_FLAGS_RELEASE "-O3 --use_fast_math") +elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-g -lineinfo -O2") +endif() + +# Set C++ debug/release flags globally +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -Wextra") +elseif(CMAKE_BUILD_TYPE STREQUAL "Release") + set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") +elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g -O2 -DNDEBUG") +endif() + + # Cuda Settings set(CMAKE_CUDA_ARCHITECTURES 61) set(CUDA_SEPARABLE_COMPILATION ON) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..229aa1f --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,31 @@ +{ + "version": 3, + "configurePresets": [ + { + "name": "debug", + "displayName": "Debug Build", + "binaryDir": "${sourceDir}/Debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + }, + { + "name": "release", + "displayName": "Release Build", + "binaryDir": "${sourceDir}/Release", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Release" + } + } + ], + "buildPresets": [ + { + "name": "debug", + "configurePreset": "debug" + }, + { + "name": "release", + "configurePreset": "release" + } + ] +}