Dengan CMake, umumnya disarankan untuk melakukan build "out of source" . Buat Anda CMakeLists.txt
di root proyek Anda. Kemudian dari akar proyek Anda:
mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Dan untuk Debug
(lagi dari akar proyek Anda):
mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
Release
Saya Debug
akan menambahkan flag yang sesuai untuk kompiler Anda. Ada juga RelWithDebInfo
dan MinSizeRel
membangun konfigurasi.
Anda dapat memodifikasi / menambahkan ke flag dengan menentukan file toolchain di mana Anda dapat menambahkan CMAKE_C_FLAGS_DEBUG
dan CMAKE_C_FLAGS_RELEASE
variabel, misalnya:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
Lihat CMAKE_BUILD_TYPE untuk detail lebih lanjut.
Adapun pertanyaan ketiga Anda, saya tidak yakin persis apa yang Anda tanyakan. CMake akan secara otomatis mendeteksi dan menggunakan kompiler yang sesuai untuk file sumber Anda yang berbeda.
cmake -i ..
sebaliknya, jadi cmake akan berjalan secara interaktif, menanyakan jenis bangunan yang Anda inginkan (Tidak Ada, Rilis, Debug, MinSizeRel, RelWithDebInfo).