Con cmake, generalmente se recomienda hacer un "out of source" build. Crea tu CMakeLists.txt
en la raíz de tu proyecto. Luego de la raíz de su proyecto:
mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Y para Debug
(de nuevo desde la raíz de su proyecto):
mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
Release
/Debug
se sumarán las banderas apropiadas para su compilador. También hay RelWithDebInfo
y MinSizeRel
configuraciones de compilación.
Puede modificar/añadir a las banderas de sus CMakeLists.txt
vía CMAKE_C_FLAGS_DEBUG
y CMAKE_C_FLAGS_RELEASE
las variables, por ejemplo .:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
Ver CMAKE_BUILD_TYPE para más detalles.
En cuanto a su tercera pregunta, no estoy seguro de lo que están pidiendo exactamente. CMake debería detectar automáticamente y usar el compilador apropiado para sus diferentes archivos fuente.
También se puede hacer un 'cmake -i ..' lugar, por lo cmake se ejecutará de forma interactiva , preguntándole qué tipo de construcción quiere (None, Release, Debug, MinSizeRel, RelWithDebInfo). – thiagowfx
@thiagowfx La opción '-i' da como resultado este mensaje de error:' El modo asistente "cmake -i" ya no es compatible. Estoy usando cmake 3.7.1 –
Bonita observación. Parece que estaba en desuso desde la versión '3.0.0'. [Referencia] (https://cmake.org/cmake/help/v3.0/release/3.0.0.html#deprecated-and-removed-features). – thiagowfx