Imposta un nome, una versione e abilita le lingue per l’intero progetto.
project(<PROJECT-NAME> )project(<PROJECT-NAME> ]]] )
Imposta il nome del progetto e salva il nome nella variabilePROJECT_NAME. Inoltre questo imposta le variabili
-
PROJECT_SOURCE_DIR,<PROJECT-NAME>_SOURCE_DIR -
PROJECT_BINARY_DIR,<PROJECT-NAME>_BINARY_DIR
Se VERSION è specificato, i componenti dati devono essere interi non negativi.Se VERSION non è specificato, la versione predefinita è la stringa vuota.L’opzione VERSION non può essere usata a meno che la policy CMP0048 sia impostata su NEW.
Il comando project() memorizza il numero di versione e i suoi componenti nelle variabili
-
PROJECT_VERSION,<PROJECT-NAME>_VERSION -
PROJECT_VERSION_MAJOR,<PROJECT-NAME>_VERSION_MAJOR -
PROJECT_VERSION_MINOR,<PROJECT-NAME>_VERSION_MINOR -
PROJECT_VERSION_PATCH,<PROJECT-NAME>_VERSION_PATCH -
PROJECT_VERSION_TWEAK,<PROJECT-NAME>_VERSION_TWEAK
Le variabili corrispondenti alle versioni non specificate sono impostate sulla stringa vuota (se la policy CMP0048 è impostata su NEW).
Opzionalmente puoi specificare quali lingue supporta il tuo progetto, ad esempio C, CXX (cioè C++), Fortran, etc. Per default C e CXX sono abilitate se non vengono date opzioni di lingua. Specifica la lingua NONE, o usa la parola chiave LANGUAGES ed elenca nessuna lingua, per saltare l’abilitazione di qualsiasi lingua.
Se esiste una variabile chiamata CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE, il file indicato da quella variabile sarà incluso come ultimo passo del comandoproject.
Il file CMakeLists.txt di primo livello per un progetto deve contenere una chiamata letterale e diretta al comando project(); caricarne una attraverso il comando include() non è sufficiente. Se tale chiamata non esiste, CMake ne aggiungerà implicitamente una all’inizio che abilita i linguaggi predefiniti (C e CXX).
Nota
Chiamare il comando cmake_minimum_required() all’inizio del file CMakeLists.txt di primo livello anche prima di chiamare il comando project(). È importante stabilire le impostazioni di versione e politica prima di invocare altri comandi il cui comportamento può essere influenzato. Vedere anche policy CMP0000.