Avatar ·

What is the difference between Debug and Release builds in CMake and how to configure them correctly?

Hi! I've just started learning CMake for my C++ projects and I can't understand the difference between Debug and Release configurations. In Visual Studio, I'm used to selecting the build mode, but in CMake, `CMAKE_BUILD_TYPE` is used for this. I wrote a simple CMakeLists.txt: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) add_executable(myapp main.cpp) ``` And I build it like this: ```bash mkdir build && cd build cmake .. cmake --build . ``` But I don't specify `-DCMAKE_BUILD_TYPE=Debug` or `Release`. What happens then? What is the default build? And most importantly — how to properly configure different compilation flags for Debug (with debug information, no optimizations) and Release (with optimizations, no debug information)? I've heard that CMake has built-in variables