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