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-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> - Отметка времени файла, если он существует, но не создание его, если он отсутствует. Если файла нет, он будет проигнорирован.
Инструменты командной строки, специфичные для UNIX
Следующие cmake -E команды доступны только в UNIX:
-
create_symlink <old> <new> - Создание символической ссылки
<new>с указанным именем<old>.
Примечание
Путь к тому месту, где будет создана символическая ссылка <new>, должен существовать.
Инструменты командной строки, специфичные для Windows
Следующие cmake -E команды доступны только в Windows:
-
delete_regv <key> - Удаление значения из реестра Windows.
-
env_vs8_wince <sdkname> - Отображение пакетного файла, устанавливающего среду для указанного установленного в VS2005 SDK Windows CE.
-
env_vs9_wince <sdkname> - Отображение пакетного файла, устанавливающего среду для указанного установленного в VS2008 SDK Windows CE.
-
write_regv <key> <value> - Запись значения в реестр Windows.
Режим инструментария find-package
CMake предоставляет помощник для проектов на основе Makefile с сигнатурой:
cmake --find-package <options>...
Это работает в режиме, подобном pkg-config.
Поиск пакета с помощью find_package() и вывод полученных флагов в стандартный вывод. Это можно использовать для поиска установленных библиотек в проектах на чистом 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.12/manual/cmake.1.html