Avatar ·

Qual é a diferença entre as builds Debug e Release no CMake e como configurá-las corretamente?

Olá! Comecei a aprender CMake para meus projetos C++ e não consigo entender a diferença entre as configurações Debug e Release. No Visual Studio, estou acostumado a selecionar o modo de build, enquanto no CMake usa-se `CMAKE_BUILD_TYPE`. Escrevi um CMakeLists.txt simples: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) add_executable(myapp main.cpp) ``` E compilo assim: ```bash mkdir build && cd build cmake .. cmake --build . ``` Mas não especifico `-DCMAKE_BUILD_TYPE=Debug` ou `Release`. O que acontece então? Qual é o build padrão? E o mais importante — como configurar corretamente diferentes flags de compilação para Debug (com informação de debug, sem otimizações) e Release (com otimizações, sem informação de debug)? Ouvi dizer que no CMake existem variáveis embutidas como `CMAKE_CXX_FLAGS_DEBUG` e `CMAKE_CXX_FLAGS_RELEASE`, mas não entendo como usá-las. Também estou interessado em saber como fazer com que os asserts sejam ativados no modo Debug e desativados no Release. E