perché cmake
cmake standardizza il build su windows, mac e linux. evita script specifici per ogni os.
CMakeLists base
cmake_minimum_required(VERSION 3.20)
project(studio)
add_executable(app main.cpp)
target multipli
add_library(core src/core.cpp)
add_executable(app main.cpp)
target_link_libraries(app PRIVATE core)
dipendenze
usa FetchContent per dipendenze moderne.
include(FetchContent)
FetchContent_Declare(fmt
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
GIT_TAG 10.1.1)
FetchContent_MakeAvailable(fmt)
target_link_libraries(app PRIVATE fmt::fmt)
workflow
cmake -S . -B build
cmake --build build
./build/app
panoramica
In questo capitolo su build system con cmake, configurare progetti multi-file e dipendenze in modo pulito. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.
Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).
badge: build system
obiettivi
- capire e applicare perché cmake in uno scenario reale
- capire e applicare CMakeLists in uno scenario reale
- capire e applicare target in uno scenario reale
- capire e applicare dipendenze in uno scenario reale
scheda rapida
#include <iostream>
#include <vector>
int main() {
std::vector<int> dati{1, 2, 3};
for (auto &v : dati) {
v *= 2;
}
for (const auto &v : dati) {
std::cout << v << " ";
}
std::cout << "\n";
return 0;
}
Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.
mini progetto
Progetto con libreria e binario.
- crea CMakeLists.txt base
- definisci target lib
- linka l'exe
- abilita warning
output atteso: uno script o query ripetibile con risultati verificabili.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale