Dengan CMake, umumnya disarankan untuk melakukan build "out of source" . Buat Anda CMakeLists.txtdi 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
ReleaseSaya Debugakan menambahkan flag yang sesuai untuk kompiler Anda. Ada juga RelWithDebInfodan MinSizeRelmembangun konfigurasi.
Anda dapat memodifikasi / menambahkan ke flag dengan menentukan file toolchain di mana Anda dapat menambahkan CMAKE_C_FLAGS_DEBUGdan CMAKE_C_FLAGS_RELEASEvariabel, 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).