Stabilește un nume, o versiune și activează limbile pentru întregul proiect.
project(<PROJECT-NAME> )project(<PROJECT-NAME> ]]] )
Stabilește numele proiectului și stochează numele în variabilaPROJECT_NAME
. În plus, aceasta setează variabilele
-
PROJECT_SOURCE_DIR
,<PROJECT-NAME>_SOURCE_DIR
-
PROJECT_BINARY_DIR
,<PROJECT-NAME>_BINARY_DIR
Dacă este specificat VERSION
, componentele date trebuie să fie numere întregi non-negative.Dacă VERSION
nu este specificat, versiunea implicită este șirul gol. opțiunea VERSION
nu poate fi utilizată decât dacă politica CMP0048
este setată la NEW
.
Comanda project()
stochează numărul versiunii și componentele saleîn variabilele
-
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
Variabilele care corespund versiunilor nespecificate sunt setate la șirul gol (dacă politica CMP0048
este setată la NEW
).
Opțional, puteți specifica ce limbaje suportă proiectul dumneavoastră.Exemple de limbaje sunt C
, CXX
(adică C++), Fortran
, etc.În mod implicit, C
și CXX
sunt activate dacă nu sunt date opțiuni de limbaj. Specificați limba NONE
, sau folosiți cuvântul cheie LANGUAGES
și nu enumerați nici o limbă, pentru a sări peste activarea oricărei limbi.
Dacă există o variabilă numită CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE
,fișierul indicat de acea variabilă va fi inclus ca ultimul pas al comenzii de proiect.
Fisierul de nivel superior CMakeLists.txt
pentru un proiect trebuie să conțină un apel literal, direct la comanda project()
; încărcarea unei singure prin intermediul comenzii include()
nu este suficientă. În cazul în care nu există un astfel de apel, CMake va adăuga implicit unul la nivel superior care să activeze limbajele predefinite (C
și CXX
).
Nota
Apelează comanda cmake_minimum_required()
la începutul fișierului de nivel superior CMakeLists.txt
chiar înainte de a apela comanda project()
. Este important să se stabilească setările de versiune și de politică înainte de a invoca alte comenzi al căror comportament poate fi afectat de acestea. A se vedea, de asemenea, politica CMP0000
.
.