Spec-Zone.ru › CMake 3.10

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 -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>
См. Режим инструмента сборки.
-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 предупреждать и об других файлах.

--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>
Отображает пакетный файл, который устанавливает среду для предоставленной установленной в VS2005 Windows CE SDK.
env_vs9_wince <sdkname>
Отображает пакетный файл, который устанавливает среду для предоставленной установленной в VS2008 Windows CE SDK.
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

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

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

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.10/manual/cmake.1.html

Spec-Zone.ru

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