project¶

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.