CodeBlanks Logo Icon CodeBlanks

CMake temelleri

CMake ile build yapılandırması öğrenirsin.

CMake nedir?

CMake, C++ projeleri için bir build sistemi üretecidir (generator). Doğrudan derlemez; bunun yerine Makefile ya da Ninja dosyaları üretir ve bunlar projeyi derler. Platform bağımsızdır: Linux, macOS ve Windows'ta aynı yapı dosyasını kullanırsın.

Her CMake projesinin kökünde bir CMakeLists.txt dosyası bulunur. En temel üç komut: cmake_minimum_required(VERSION 3.20) en düşük sürümü, project(MyApp) proje adını, add_executable(myapp main.cpp) ise çalıştırılabilir hedefi tanımlar. Bu dosyayı yazdıktan sonra cmake . ile yapı dosyalarını üretirsin.

project ve add_executable

project(MyApp) komutu projeye ad verir ve varsayılan dili (C/C++) ayarlar. project(MyApp LANGUAGES CXX) biçiminde dili açıkça belirtebilirsin. Bu komut aynı zamanda PROJECT_NAME değişkenini de tanımlar.

add_executable(myapp main.cpp) komutu myapp adında bir çalıştırılabilir hedef tanımlar. Kaynak dosyaları tek tek ya da liste biçiminde verebilirsin: add_executable(myapp main.cpp utils.cpp). Hedef adı genelde proje adıyla aynı tutulur. CMake bu hedefi derleyip çalıştırılabilir dosyayı üretir.

Uygulama İlk CMakeLists.txt yaz

Bir CMakeLists.txt yaz. cmake_minimum_required(VERSION 3.20) ile sürümü, project(MyApp) ile proje adını, add_executable(myapp main.cpp) ile çalıştırılabilir hedefi tanımla.

Başlangıç kodu

main.cpp
# CMakeLists.txt
# cmake komutlarını buraya ekle

Örnek çözüm

main.cpp
cmake_minimum_required(VERSION 3.20)
project(MyApp)
add_executable(myapp main.cpp)

Beklenen çıktı

Yapılandırma hazır

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 CMake ne üretir?

  • Doğrudan çalıştırılabilir dosya
  • C++ kaynak kodu
  • Build dosyaları (Makefile ya da Ninja) Doğru cevap
  • Sınıf diyagramı

Açıklama: CMake, Make ya da Ninja build dosyalarını üretir; bunlar projeyi derler.

2 Sürüm komutunu tamamla

Soru
____(VERSION 3.20)
Cevap
cmake_minimum_required(VERSION 3.20)

Açıklama: cmake_minimum_required en düşük CMake sürümünü belirler.

3 Komutu rolüne eşle

Kavram Anlamı
cmake_minimum_required En düşük sürüm
project(MyApp) Proje adını belirler
add_executable Çalıştırılabilir hedef
CMakeLists.txt Yapı dosyası

İleri seviye bölümündeki tüm dersler