Spec-Zone.ru › CMake 3.13

project

Устанавливает детали проекта, такие как имя, версия и т. д., и включает языки.

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

Устанавливает имя проекта и сохраняет имя в переменной PROJECT_NAME. Кроме того, это задаёт переменные

  • PROJECT_SOURCE_DIR, <PROJECT-NAME>_SOURCE_DIR
  • PROJECT_BINARY_DIR, <PROJECT-NAME>_BINARY_DIR

Если VERSION указано, заданные компоненты должны быть неотрицательными целыми числами. Если VERSION не указано, версия по умолчанию — пустая строка. Опция VERSION может использоваться только если политика CMP0048 установлена в NEW.

Команда project() сохраняет номер версии и её компоненты в переменных

  • 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

Переменные, соответствующие неопределённым версиям, устанавливаются в пустую строку (если политика CMP0048 установлена в NEW).

Если указана необязательная DESCRIPTION, тогда PROJECT_DESCRIPTION и <PROJECT-NAME>_DESCRIPTION будут установлены на её аргумент. Эти переменные будут очищены, если DESCRIPTION не указано. Описание ожидается в виде относительно короткой строки, обычно не более нескольких слов.

Необязательная HOMEPAGE_URL устанавливает аналогичные переменные PROJECT_HOMEPAGE_URL и <PROJECT-NAME>_HOMEPAGE_URL. Когда эта опция указана, предоставленный URL должен быть каноническим адресом домашней страницы проекта. Эти переменные будут очищены, если HOMEPAGE_URL не указано.

Обратите внимание, что описание и URL домашней страницы могут использоваться в качестве значений по умолчанию для таких вещей, как метаданные упаковки, документация и т. д.

Необязательно можно указать, какие языки поддерживаются вашим проектом. Примеры языков: C, CXX (например, C++), CUDA, Fortran, и ASM. По умолчанию C и CXX включены, если опции языка не указаны. Укажите язык NONE, или используйте ключевое слово LANGUAGES и не указывайте языки, чтобы не включать какие-либо языки.

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

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

Файл верхнего уровня CMakeLists.txt для проекта должен содержать прямой вызов команды project(); загрузка через команду include() недостаточно. Если такого вызова нет, CMake неявно добавит его в верхний уровень, чтобы включить языки по умолчанию (C и CXX). Имя проекта, заданное в файле верхнего уровня CMakeLists.txt, доступно из переменной CMAKE_PROJECT_NAME, его описание из CMAKE_PROJECT_DESCRIPTION, URL домашней страницы из CMAKE_PROJECT_HOMEPAGE_URL и его версия из CMAKE_PROJECT_VERSION.

Примечание

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

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

Spec-Zone.ru

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