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
.