Spec-Zone.ru › CMake 3.11

cmake(1)

Синопсис

cmake [<options>] (<path-to-source> | <path-to-existing-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 для генерации системы билда для родного инструмента на своей платформе.

Опции

-C <initial-cache>

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

При первом запуске cmake в пустом дереве билда, он создаёт файл CMakeCache.txt и заполняет его настраиваемыми параметрами проекта. Данная опция может быть использована для указания файла, из которого следует загрузить записи кэша до первого прохода по файлам cmake проекта. Загруженные записи имеют приоритет над значениями по умолчанию проекта. Указанный файл должен быть скриптом 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-compiles, так как старый мусор из предыдущего 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 о предупреждении о других файлах.

END_OF_DOCUMENT_MARKER
--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>
Директория бинарных файлов проекта для сборки. Это обязательно и должно быть указано в первую очередь.
--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>
Обновить время изменения файла, если он существует, но не создавать его. Если файл не существует, он будет проигнорирован.

UNIX-специфические инструменты командной строки

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

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() и вывод полученных флагов в стандартный вывод. Это можно использовать для поиска установленных библиотек в проектах на основе простого Makefile или в проектах на основе autoconf (через share/aclocal/cmake.m4).

Примечание

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

См. также

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

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

https://cmake.org

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

Часто задаваемые вопросы

https://cmake.org/Wiki/CMake_FAQ

Wiki содержит ответы на часто задаваемые вопросы.

Онлайн-документация

https://cmake.org/documentation

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

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

https://cmake.org/mailing-lists

Для получения помощи и обсуждения использования cmake, на странице 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.11/manual/cmake.1.html

Spec-Zone.ru

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