Spec-Zone.ru › CMake 3.16

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

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

Параметры

Параметры:

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.

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

DESCRIPTION <project-description-string>

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

  • PROJECT_DESCRIPTION, <PROJECT-NAME>_DESCRIPTION

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

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

HOMEPAGE_URL <url-string>

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

  • PROJECT_HOMEPAGE_URL, <PROJECT-NAME>_HOMEPAGE_URL

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

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

LANGUAGES <language-name>...

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

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

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

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

Инъекция кода

Если переменная CMAKE_PROJECT_INCLUDE_BEFORE установлена, файл, на который указывает эта переменная, будет включён как первый шаг команды project().

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

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

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

Примечание

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

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

Spec-Zone.ru

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