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 о предупреждении о других файлах.
-
--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 доступны следующие ресурсы:
- Главная страница
-
Основной стартовый пункт для изучения 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