Spec-Zone.ru › CMake 3.15

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>, что должно быть каноническим URL-адресом домашней страницы проекта.

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

LANGUAGES <language-name>...

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

Выбирает языки программирования, необходимые для сборки проекта. Поддерживаемые языки включают C, CXX (т.е. C++), CUDA, 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.15/command/project.html

Spec-Zone.ru

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