Spec-Zone.ru › CMake 3.23

project

Установите имя проекта.

Краткое описание

project(<PROJECT-NAME> [<language-name>...])
project(<PROJECT-NAME>
        [VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
        [DESCRIPTION <project-description-string>]
        [HOMEPAGE_URL <url-string>]
        [LANGUAGES <language-name>...])

Устанавливает имя проекта и сохраняет его в переменной PROJECT_NAME. При вызове из верхнего уровня CMakeLists.txt также сохраняет имя проекта в переменной CMAKE_PROJECT_NAME.

Также устанавливаются следующие переменные:

PROJECT_SOURCE_DIR, <PROJECT-NAME>_SOURCE_DIR

Абсолютный путь к каталогу исходных файлов проекта.

PROJECT_BINARY_DIR, <PROJECT-NAME>_BINARY_DIR

Абсолютный путь к каталогу двоичных файлов проекта.

PROJECT_IS_TOP_LEVEL, <PROJECT-NAME>_IS_TOP_LEVEL

Новая в версии 3.21.

Булево значение, указывающее, является ли проект главным.

Дополнительные переменные устанавливаются с помощью необязательных аргументов, описанных ниже. Если какой-либо из этих аргументов не используется, соответствующие переменные устанавливаются в пустую строку.

Параметры

Параметры:

VERSION <version>

Необязательно; может не использоваться, если политика CMP0048 установлена в NEW.

Принимает <version> аргумент, состоящий из целых неотрицательных компонент, т.е. <major>[.<minor>[.<patch>[.<tweak>]]], и устанавливает переменные

  • 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.

Новая в версии 3.12: При вызове команды project() из верхнего уровня CMakeLists.txt, версия также сохраняется в переменной CMAKE_PROJECT_VERSION.

DESCRIPTION <project-description-string>

Новая в версии 3.9.

Необязательно. Устанавливает переменные

  • PROJECT_DESCRIPTION, <PROJECT-NAME>_DESCRIPTION

в <project-description-string>. Рекомендуется, чтобы это описание было относительно коротким, обычно не более нескольких слов.

При вызове команды project() из верхнего уровня CMakeLists.txt, описание также сохраняется в переменной CMAKE_PROJECT_DESCRIPTION.

Новая в версии 3.12: Добавлена переменная <PROJECT-NAME>_DESCRIPTION.

HOMEPAGE_URL <url-string>

Новая в версии 3.12.

Необязательно. Устанавливает переменные

  • PROJECT_HOMEPAGE_URL, <PROJECT-NAME>_HOMEPAGE_URL

в <url-string>, что должно быть каноническим URL-адресом домашней страницы проекта.

При вызове команды project() из верхнего уровня CMakeLists.txt, URL также сохраняется в переменной CMAKE_PROJECT_HOMEPAGE_URL.

LANGUAGES <language-name>...

Необязательно. Также может быть указан без ключевого слова LANGUAGES в соответствии с первым, коротким определением.

Выбирает необходимые языки программирования для построения проекта. Поддерживаемые языки включают C, CXX (т.е. C++), CUDA, OBJC (т.е. Objective-C), OBJCXX, Fortran, HIP, ISPC, и ASM. По умолчанию C и CXX включены, если не указаны языковые параметры. Укажите язык NONE, или используйте ключевое слово LANGUAGES и не указывайте языки, чтобы отменить включение каких-либо языков.

Новая в версии 3.8: Добавлена поддержка CUDA.

Новая в версии 3.16: Добавлена поддержка OBJC и OBJCXX.

Новая в версии 3.18: Добавлена поддержка ISPC.

Если вы включаете ASM, укажите его последним, чтобы CMake мог проверить, работают ли компиляторы других языков, таких как C, и для ассемблера тоже.

Переменные, установленные через параметры VERSION, DESCRIPTION и HOMEPAGE_URL, предназначены для использования в качестве значений по умолчанию в метаданных и документации пакетов.

Вставка кода

Если переменные CMAKE_PROJECT_INCLUDE_BEFORE или CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE установлены, файлы, на которые они ссылаются, будут включены как первый шаг команды project(). Если оба установлены, то CMAKE_PROJECT_INCLUDE_BEFORE будет включено перед CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE.

Если переменные CMAKE_PROJECT_INCLUDE или CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE установлены, файлы, на которые они ссылаются, будут включены как последний шаг команды project(). Если оба установлены, то CMAKE_PROJECT_INCLUDE будет включено перед CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE.

Новая в версии 3.15: Добавлены переменные CMAKE_PROJECT_INCLUDE и CMAKE_PROJECT_INCLUDE_BEFORE.

Новая в версии 3.17: Добавлена переменная CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE.

Использование

Файл верхнего уровня CMakeLists.txt для проекта должен содержать буквальный, прямой вызов команды project(); загрузка его через команду include() недостаточно. Если такого вызова нет, CMake выведет предупреждение и предположит существование project(Project) вверху, чтобы включить языки по умолчанию (C и CXX).

Примечание

Вызовите команду project() в начале верхнего уровня CMakeLists.txt, но после вызова cmake_minimum_required(). Важно установить параметры версии и политики перед вызовом других команд, поведение которых они могут повлиять. См. также политику CMP0000.

© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/command/project.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API