Sätt namn, version och aktiveringsspråk för hela projektet.
project(<PROJECT-NAME> )project(<PROJECT-NAME> ]]] )
Sätter namnet på projektet och lagrar namnet i variabelnPROJECT_NAME
. Dessutom sätter detta variabler
-
PROJECT_SOURCE_DIR
,<PROJECT-NAME>_SOURCE_DIR
-
PROJECT_BINARY_DIR
,<PROJECT-NAME>_BINARY_DIR
Om VERSION
anges måste givna komponenter vara icke-negativa heltal.Om VERSION
inte anges är standardversionen den tomma strängen.Alternativet VERSION
får inte användas om inte policy CMP0048
är satt till NEW
.
Kommandot project()
lagrar versionsnumret och dess komponenteri variabler
-
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
Variabler som motsvarar ospecificerade versioner sätts till den tomma strängen (om policy CMP0048
är inställd på NEW
).
Optionellt kan du ange vilka språk ditt projekt stöder.Exempel på språk är C
, CXX
(dvs. C++), Fortran
, etc.Som standard är C
och CXX
aktiverade om inga språkalternativ anges. Ange språk NONE
, eller använd nyckelordet LANGUAGES
och lista inga språk, för att hoppa över att aktivera några språk.
Om det finns en variabel som heter CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE
kommer filen som den variabeln pekar på att inkluderas som det sista steget i kommandotproject.
Den översta CMakeLists.txt
-filen på högsta nivå för ett projekt måste innehålla en bokstavlig, direkt anropning av project()
-kommandot; att läsa in en sådan via include()
-kommandot är inte tillräckligt. Om inget sådant anrop finns kommer CMake implicit att lägga till ett i toppen som aktiverar standardspråken (C
och CXX
).
Note
Anropa cmake_minimum_required()
-kommandot i början av den översta nivåns CMakeLists.txt
-fil även innan du anropar project()
-kommandot. Det är viktigt att fastställa versions- och policyinställningar innan du anropar andra kommandon vars beteende de kan påverka. Se även policy CMP0000
.
.