project¶

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.

.