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. Кроме того, это устанавливает переменные
Если 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 будут установлены в его аргумент. Описание ожидается в виде относительно короткой строки, обычно не более нескольких слов.
Необязательный HOMEPAGE_URL устанавливает аналогичные переменные PROJECT_HOMEPAGE_URL и <PROJECT-NAME>_HOMEPAGE_URL. Если эта опция указана, предоставленный 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, его домашнюю страницу из 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.12/command/project.html