Ustawia nazwę, wersję i języki aktywacji dla całego projektu.
project(<PROJECT-NAME> )project(<PROJECT-NAME> ]]] )
Ustawia nazwę projektu i przechowuje nazwę w zmiennejPROJECT_NAME
. Dodatkowo ustawia zmienne
-
PROJECT_SOURCE_DIR
,<PROJECT-NAME>_SOURCE_DIR
-
PROJECT_BINARY_DIR
,<PROJECT-NAME>_BINARY_DIR
Jeśli VERSION
jest określone, dane składowe muszą być nieujemnymi liczbami całkowitymi.Jeśli VERSION
nie jest określone, domyślną wersją jest pusty łańcuch.Opcja VERSION
nie może być użyta, chyba że polityka CMP0048
jest ustawiona na NEW
.
Polecenie project()
przechowuje numer wersji i jego składowe w zmiennych
-
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
Zmienne odpowiadające nieokreślonym wersjom są ustawiane na pusty ciąg (jeśli polityka CMP0048
jest ustawiona na NEW
).
Opcjonalnie możesz określić, które języki obsługuje twój projekt.Przykładowe języki to C
, CXX
(tj. C++), Fortran
, itd.Domyślnie C
i CXX
są włączone, jeśli nie podano opcji języka. Określ język NONE
lub użyj słowa kluczowego LANGUAGES
i nie podawaj żadnych języków, aby pominąć włączanie jakichkolwiek języków.
Jeśli istnieje zmienna o nazwie CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE
, plik wskazywany przez tę zmienną zostanie dołączony jako ostatni krok poleceniaproject.
Plik najwyższego poziomu CMakeLists.txt
projektu musi zawierać dosłowne, bezpośrednie wywołanie polecenia project()
; ładowanie go przez polecenie include()
nie jest wystarczające. Jeśli takie wywołanie nie istnieje, CMake domyślnie doda na wierzchu takie, które włącza domyślne języki (C
i CXX
).
Uwaga
Wywołaj polecenie cmake_minimum_required()
na początku pliku CMakeLists.txt
najwyższego poziomu, nawet przed wywołaniem poleceniaproject()
. Ważne jest, aby ustalić wersję i ustawienia polityki przed wywołaniem innych poleceń, na których zachowanie mogą one wpłynąć. Zobacz także polityka CMP0000
.
.