Spec-Zone.ru › CMake 3.13

cmake(1)

Синопсис

cmake [<options>] {<path-to-source> | <path-to-existing-build>}
cmake [<options>] -S <path-to-source> -B <path-to-build>
cmake [{-D <var>=<value>}...] -P <cmake-script-file>
cmake --build <dir> [<options>...] [-- <build-tool-options>...]
cmake --open <dir>
cmake -E <command> [<options>...]
cmake --find-package <options>...

Описание

Исполняемый файл «cmake» — это командная строка CMake. Он может использоваться для настройки проектов в скриптах. Параметры конфигурации проекта можно указать в командной строке с помощью опции -D.

CMake — это кроссплатформенная система генерации билдов. Проекты описывают свой процесс сборки с помощью независимых от платформы файлов CMakeLists.txt, включённых в каждый каталог дерева исходного кода. Пользователи собирают проект, используя CMake для генерации системы сборки для родного инструмента на своей платформе.

Опции

-S <path-to-source>
Путь к корневому каталогу проекта CMake, который нужно скомпилировать.
-B <path-to-build>

Путь к каталогу, который CMake будет использовать в качестве корня каталога сборки.

Если каталог ещё не существует, CMake его создаст.

-C <initial-cache>

Предварительная загрузка скрипта для заполнения кэша.

При первом запуске cmake в пустом дереве сборки создаётся файл CMakeCache.txt и заполняется настраиваемыми параметрами проекта. Данная опция может использоваться для указания файла, из которого необходимо загрузить записи кэша до первого прохода по файлам CMakeLists.txt проекта. Загруженные записи имеют приоритет над значениями по умолчанию проекта. Указанный файл должен быть скриптом CMake, содержащим команды SET, использующие опцию CACHE, а не файлом формата кэша.

-D <var>:<type>=<value>, -D <var>=<value>

Создание или обновление записи кэша cmake.

При первом запуске cmake в пустом дереве сборки создаётся файл CMakeCache.txt и заполняется настраиваемыми параметрами проекта. Данная опция может использоваться для указания параметра, который имеет приоритет над значением по умолчанию проекта. Опция может быть повторена для любого количества записей кэша.

Если указана часть :<type>, она должна быть одним из типов, указанных в документации к команде set() для её CACHE подписи. Если часть :<type> опущена, запись будет создана без типа, если она не существует с уже заданным типом. Если команда в проекте устанавливает тип PATH или FILEPATH, то <value> будет преобразован в абсолютный путь.

Эта опция также может быть указана как один аргумент: -D<var>:<type>=<value> или -D<var>=<value>.

-U <globbing_expr>

Удаление соответствующих записей из кэша CMake.

Эта опция может использоваться для удаления одной или нескольких переменных из файла CMakeCache.txt, поддерживаются выражения поиска с использованием * и ?. Опция может быть повторена для любого количества записей кэша.

Используйте с осторожностью, вы можете сделать свой CMakeCache.txt нерабочим.

-G <generator-name>

Указание генератора системы сборки.

CMake может поддерживать несколько родных систем сборки на определённых платформах. Генератор отвечает за генерацию конкретной системы сборки. Возможные имена генераторов указаны в руководстве cmake-generators(7).

-T <toolset-spec>

Указание набора инструментов для генератора, если это поддерживается.

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

-A <platform-name>

Указание имени платформы, если это поддерживается генератором.

Некоторые генераторы CMake поддерживают имя платформы, которое передаётся родной системе сборки для выбора компилятора или SDK. Подробности см. в переменной CMAKE_GENERATOR_PLATFORM.

-Wno-dev

Подавление предупреждений разработчиков.

Подавление предупреждений, предназначенных автору файлов CMakeLists.txt. По умолчанию это также отключит предупреждения о устаревших функциях.

-Wdev

Включение предупреждений разработчиков.

Включение предупреждений, предназначенных автору файлов CMakeLists.txt. По умолчанию это также включит предупреждения о устаревших функциях.

-Werror=dev

Преобразование предупреждений разработчиков в ошибки.

Преобразование предупреждений, предназначенных автору файлов CMakeLists.txt, в ошибки. По умолчанию это также преобразует предупреждения об устаревших функциях в ошибки.

-Wno-error=dev

Преобразование предупреждений разработчиков не в ошибки.

Преобразование предупреждений, предназначенных автору файлов CMakeLists.txt, не в ошибки. По умолчанию это также отключит предупреждения об устаревших функциях как об ошибках.

-Wdeprecated

Включение предупреждений об устаревших функциях.

Включение предупреждений об использовании устаревших функций, предназначенных для автора файлов CMakeLists.txt.

-Wno-deprecated

Подавление предупреждений об устаревших функциях.

Подавление предупреждений об использовании устаревших функций, предназначенных для автора файлов CMakeLists.txt.

-Werror=deprecated

Преобразование предупреждений о устаревших макросах и функциях в ошибки.

Преобразование предупреждений об использовании устаревших макросов и функций, предназначенных для автора файлов CMakeLists.txt, в ошибки.

-Wno-error=deprecated

Преобразование предупреждений о устаревших макросах и функциях не в ошибки.

Преобразование предупреждений об использовании устаревших макросов и функций, предназначенных для автора файлов CMakeLists.txt, не в ошибки.

-E <command> [<options>...]
См. Режим работы с инструментарием командной строки.
-L[A][H]

Список не-расширенных переменных кэша.

Список переменных кэша запустит CMake и выведет все переменные из кэша CMake, которые не помечены как INTERNAL или ADVANCED. Это эффективно отобразит текущие параметры CMake, которые затем можно изменить с помощью опции -D. Изменение некоторых переменных может привести к созданию дополнительных переменных. Если указана A, то отображаются также расширенные переменные. Если указана H, то отображается также справка для каждой переменной.

--build <dir>
См. Режим работы с инструментом сборки.
--open <dir>
Открыть сгенерированный проект в соответствующем приложении. Это поддерживается только некоторыми генераторами.
-N

Только режим просмотра.

Только загрузить кэш. Не выполнять фактические этапы настройки и генерации.

-P <file>

Режим обработки скрипта.

Обработать указанный файл cmake как скрипт, написанный на языке CMake. Не выполняется ни этап настройки, ни этап генерации, и кэш не изменяется. Если переменные определены с помощью -D, это необходимо сделать до аргумента -P.

--find-package
См. Режим работы инструмента поиска пакетов.
--graphviz=[file]

Сгенерировать граф зависимостей graphviz, см. CMakeGraphVizOptions для получения дополнительной информации.

Сгенерировать входной файл graphviz, который будет содержать все зависимости библиотек и исполняемых файлов в проекте. Для получения более подробной информации см. документацию по CMakeGraphVizOptions.

--system-information [file]

Вывести информацию об этой системе.

Вывести широкий спектр информации о текущей системе. Если запуск производится из верхней части двоичного дерева проекта CMake, то выводится дополнительная информация, такая как кэш, файлы журналов и т. д.

--debug-trycompile

Не удалять дерево сборки try_compile. Полезно только для одного try_compile за раз.

Не удалять файлы и каталоги, созданные для вызовов try_compile. Это полезно при отладке неисправных try_compile. Однако это может изменить результаты try-compile, так как старые фрагменты из предыдущего try-compile могут привести к тому, что другой тест пройдёт или не пройдёт неправильно. Эта опция лучше всего используется для одного try-compile за раз и только при отладке.

--debug-output

Перевести cmake в режим отладки.

Печать дополнительной информации во время выполнения cmake, например, трассировок стека с вызовами message(send_error).

--trace

Перевести cmake в режим трассировки.

Вывести трассировку всех выполненных вызовов и их источников.

--trace-expand

Перевести cmake в режим трассировки.

Как --trace, но с расширенными переменными.

--trace-source=<file>

Перевести cmake в режим трассировки, но выводить только строки из указанного файла.

Разрешено несколько опций.

--warn-uninitialized

Предупреждать об неинициализированных значениях.

Вывести предупреждение, когда используется неинициализированная переменная.

--warn-unused-vars

Предупреждать об неиспользуемых переменных.

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

--no-warn-unused-cli

Не выводить предупреждения о параметрах командной строки.

Не искать переменные, объявленные в командной строке, но не используемые.

--check-system-vars

Найти проблемы с использованием переменных в системных файлах.

В нормальном режиме неиспользуемые и неинициализированные переменные ищутся только в CMAKE_SOURCE_DIR и CMAKE_BINARY_DIR. Этот флаг сообщает CMake о том, чтобы предупреждать и об других файлах.

--help,-help,-usage,-h,-H,/?

Вывод информации об использовании и выход.

Информация об использовании описывает базовый интерфейс командной строки и его параметры.

--version,-version,/V [<f>]

Вывод баннера имени/версии программы и выход.

Если указан файл, версия записывается в него. Справка выводится в указанный файл <f>айл, если он задан.

--help-full [<f>]

Вывод всех руководств по справке и выход.

Все руководства выводятся в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-manual <man> [<f>]

Вывод одного руководства по справке и выход.

Указанное руководство выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-manual-list [<f>]

Список доступных руководств по справке и выход.

Список содержит все руководства, для которых можно получить справку, используя опцию --help-manual с последующим именем руководства. Справка выводится в указанный файл <f>айл, если он задан.

--help-command <cmd> [<f>]

Вывод справки по одной команде и выход.

Запись справки cmake-commands(7) для <cmd> выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-command-list [<f>]

Список команд со справкой и выход.

Список содержит все команды, для которых можно получить справку, используя опцию --help-command с последующим именем команды. Справка выводится в указанный файл <f>айл, если он задан.

--help-commands [<f>]

Вывод справки по cmake-commands и выход.

Руководство cmake-commands(7) выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-module <mod> [<f>]

Вывод справки по одному модулю и выход.

Запись справки cmake-modules(7) для <mod> выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-module-list [<f>]

Список модулей со справкой и выход.

Список содержит все модули, для которых можно получить справку, используя опцию --help-module с последующим именем модуля. Справка выводится в указанный файл <f>айл, если он задан.

--help-modules [<f>]

Вывод справки по cmake-modules и выход.

Руководство cmake-modules(7) выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-policy <cmp> [<f>]

Вывод справки по одной политике и выход.

Запись справки cmake-policies(7) для <cmp> выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-policy-list [<f>]

Список политик со справкой и выход.

Список содержит все политики, для которых можно получить справку, используя опцию --help-policy с последующим именем политики. Справка выводится в указанный файл <f>айл, если он задан.

--help-policies [<f>]

Вывод справки по cmake-policies и выход.

Руководство cmake-policies(7) выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-property <prop> [<f>]

Вывод справки по одному свойству и выход.

Записи справки cmake-properties(7) для <prop> выводятся в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-property-list [<f>]

Список свойств со справкой и выход.

Список содержит все свойства, для которых можно получить справку, используя опцию --help-property с последующим именем свойства. Справка выводится в указанный файл <f>айл, если он задан.

--help-properties [<f>]

Вывод справки по cmake-properties и выход.

Руководство cmake-properties(7) выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-variable <var> [<f>]

Вывод справки по одной переменной и выход.

Запись справки cmake-variables(7) для <var> выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

--help-variable-list [<f>]

Список переменных со справкой и выход.

Список содержит все переменные, для которых можно получить справку, используя опцию --help-variable с последующим именем переменной. Справка выводится в указанный файл <f>айл, если он задан.

--help-variables [<f>]

Вывод справки по cmake-variables и выход.

Руководство cmake-variables(7) выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.

Режим инструмента построения

CMake предоставляет подпись командной строки для построения уже сгенерированного двоичного дерева проекта:

cmake --build <dir> [<options>...] [-- <build-tool-options>...]

Это абстрагирует интерфейс командной строки инструментативного построения с помощью следующих опций:

--build <dir>
Директория двоичного проекта, подлежащая построению. Требуется и должна быть указана первой.
-j [<jobs>], --parallel [<jobs>]

Максимальное количество одновременных процессов для использования при построении. Если <jobs> опущено, используется значение по умолчанию для инструментативного построения.

Переменная среды CMAKE_BUILD_PARALLEL_LEVEL, если она установлена, задаёт значение по умолчанию уровня параллельности, когда эта опция не указана.

--target <tgt>
Построить <tgt> вместо целевых объектов по умолчанию. Может быть указана только один раз.
--config <cfg>
Для инструментов с несколькими конфигурациями, выбрать конфигурацию <cfg>.
--clean-first
Сначала построить целевой объект clean, а затем выполнить построение. (Для очистки использовать --target clean.)
--use-stderr
Игнорируется. Поведение по умолчанию в CMake >= 3.0.
--
Передать оставшиеся опции родному инструменту.

Запустите cmake --build без параметров для получения краткой справки.

Режим инструмента командной строки

CMake предоставляет встроенные инструменты командной строки через подпись:

cmake -E <command> [<options>...]

Запустите cmake -E или cmake -E help для получения сводки команд. Доступные команды:

capabilities

Отчёт о возможностях cmake в формате JSON. Вывод — JSON-объект со следующими ключами:

version

JSON-объект с информацией о версии. Ключи:

string
Полная строка версии, отображаемая cmake --version.
major
Главный номер версии в целых числах.
minor
Дополнительный номер версии в целых числах.
patch
Номер патча в целых числах.
suffix
Строка суффикса версии cmake.
isDirty
Булево значение, установленное, если сборка cmake выполняется из грязного дерева.
generators

Список доступных генераторов. Каждый генератор — JSON-объект со следующими ключами:

name
Строка с именем генератора.
toolsetSupport
true если генератор поддерживает наборы инструментов и false в противном случае.
platformSupport
true если генератор поддерживает платформы и false в противном случае.
extraGenerators
Список строк со всеми дополнительными генераторами, совместимыми с текущим генератором.
serverMode
true если cmake поддерживает режим сервера, и false в противном случае.
chdir <dir> <cmd> [<arg>...]
Изменение текущей рабочей директории и выполнение команды.
compare_files <file1> <file2>
Проверка, совпадают ли <file1> и <file2>. Если файлы совпадают, возвращает 0, иначе — 1.
copy <file>... <destination>
Копирование файлов в <destination> (файл или директория). Если указано несколько файлов, <destination> должна быть директорией и должна существовать. Поддержка шаблонов не предусмотрена.
copy_directory <dir>... <destination>
Копирование каталогов в директорию <destination>. Если директория <destination> не существует, она будет создана.
copy_if_different <file>... <destination>
Копирование файлов в <destination> (файл или директория), если они изменены. Если указано несколько файлов, <destination> должна быть директорией и должна существовать.
echo [<string>...]
Отображение аргументов как текста.
echo_append [<string>...]
Отображение аргументов как текста без новой строки.
env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...
Выполнение команды в изменённой среде.
environment
Отображение текущих переменных среды.
make_directory <dir>...
Создание директорий <dir>. При необходимости создаются родительские директории. Если директория уже существует, она будет проигнорирована.
md5sum <file>...

Создание MD5 контрольной суммы файлов в формате md5sum.

351abe79cd3800b38cdfb25d45015a15  file1.txt
052f86c15bbde68af55c7f7b340ab639  file2.txt
sha1sum <file>...

Создание SHA1 контрольной суммы файлов в формате sha1sum.

4bb7932a29e6f73c97bb9272f2bdc393122f86e0  file1.txt
1df4c8f318665f9a5f2ed38f55adadb7ef9f559c  file2.txt
sha224sum <file>...

Создание SHA224 контрольной суммы файлов в формате sha224sum.

b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930  file1.txt
6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24  file2.txt
sha256sum <file>...

Создание SHA256 контрольной суммы файлов в формате sha256sum.

76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc  file1.txt
15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea  file2.txt
sha384sum <file>...

Создание SHA384 контрольной суммы файлов в формате sha384sum.

acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434  file1.txt
668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d  file2.txt
sha512sum <file>...

Создание SHA512 контрольной суммы файлов в формате sha512sum.

2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89  file1.txt
7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d  file2.txt
remove [-f] <file>...
Удаление файла(ов). Если какой-либо из перечисленных файлов уже не существует, команда возвращает ненулевой код выхода, но сообщение не выводится. Опция -f изменяет поведение на возврат нулевого кода выхода (т.е. успех) в таких ситуациях.
remove_directory <dir>
Удаление каталога и его содержимого. Если каталог не существует, он будет проигнорирован.
rename <oldname> <newname>
Переименование файла или каталога (в пределах одного тома).
server
Запуск режима cmake-server(7).
sleep <number>...
Ожидание в течение заданного количества секунд.
tar [cxt][vf][zjJ] file.tar [<options>...] [--] [<file>...]

Создание или извлечение архива tar или zip. Опции:

--
Остановление интерпретации опций и обработка всех оставшихся аргументов как имён файлов, даже если они начинаются с -.
--files-from=<file>
Чтение имён файлов из заданного файла, по одному на строку. Пустые строки игнорируются. Строки не могут начинаться с - за исключением --add-file=<name> для добавления файлов, имена которых начинаются с -.
--mtime=<date>
Указание времени изменения, записанного в записях tar-архива.
--format=<format>
Указание формата создаваемого архива. Поддерживаемые форматы: 7zip, gnutar, pax, paxr (ограниченный pax, по умолчанию) и zip.
time <command> [<args>...]
Выполнение команды и отображение времени выполнения.
touch <file>
Создание файла.
touch_nocreate <file>
Создание файла, если он существует, но не создавать его, если он не существует. Если файл не существует, он будет проигнорирован.
create_symlink <old> <new>
Создание символической ссылки <new> с именем <old>.

Примечание

Путь к месту создания символической ссылки <new> должен существовать заранее.

Инструменты командной строки, специфичные для Windows

Следующие команды cmake -E доступны только в Windows:

delete_regv <key>
Удаление значения из реестра Windows.
env_vs8_wince <sdkname>
Отображает пакетный файл, устанавливающий среду для установленного Windows CE SDK в VS2005.
env_vs9_wince <sdkname>
Отображает пакетный файл, устанавливающий среду для установленного Windows CE SDK в VS2008.
write_regv <key> <value>
Запись значения в реестр Windows.

Режим инструмента поиска пакетов

CMake предоставляет вспомогательный инструмент для проектов на основе Makefile с сигнатурой:

cmake --find-package <options>...

Он работает в режиме, похожем на pkg-config.

Поиск пакета с помощью find_package() и вывод полученных флагов в stdout. Это можно использовать для использования cmake вместо pkg-config для поиска установленных библиотек в проектах на основе чистого Makefile или в проектах на основе autoconf (через share/aclocal/cmake.m4).

Примечание

Этот режим слабо поддерживается из-за некоторых технических ограничений. Он сохраняется для совместимости, но не должен использоваться в новых проектах.

См. также

Для получения помощи в использовании CMake доступны следующие ресурсы:

Главная страница

https://cmake.org

Основная точка входа для изучения CMake.

Онлайн-документация и ресурсы сообщества

https://cmake.org/documentation

Ссылки на доступную документацию и ресурсы сообщества можно найти на этой веб-странице.

Список рассылки

https://cmake.org/mailing-lists

Для получения помощи и обсуждения использования cmake предоставлен список рассылки по адресу cmake@cmake.org. Список является закрытым, но можно подписаться на сайте CMake. Сначала ознакомьтесь с полной документацией по адресу https://cmake.org, прежде чем отправлять вопросы в список рассылки.

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

Spec-Zone.ru

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