cmake(1)
Синопсис
Generate a Project Buildsystem
cmake [<options>] <path-to-source>
cmake [<options>] <path-to-existing-build>
cmake [<options>] -S <path-to-source> -B <path-to-build>
Build a Project
cmake --build <dir> [<options>] [-- <build-tool-options>]
Install a Project
cmake --install <dir> [<options>]
Open a Project
cmake --open <dir>
Run a Script
cmake [{-D <var>=<value>}...] -P <cmake-script-file>
Run a Command-Line Tool
cmake -E <command> [<options>]
Run the Find-Package Tool
cmake --find-package [<options>]
View Help
cmake --help[-<topic>] Описание
Исполняемый файл cmake — это командная строка генератора кроссплатформенной системы сборки CMake. В вышеприведённом Синопсисе перечислены различные действия, которые может выполнять этот инструмент, как описано в следующих разделах.
Для сборки программного проекта с помощью CMake, сгенерируйте систему сборки проекта. Дополнительно используйте cmake для сборки проекта, установки проекта или просто для запуска соответствующего инструмента сборки (например, make) непосредственно. cmake также можно использовать для просмотра справки.
Другие действия предназначены для использования разработчиками программного обеспечения, которые пишут скрипты на языке CMake language, чтобы поддерживать свои сборки.
Для графических пользовательских интерфейсов, которые могут использоваться вместо cmake, см. ccmake и cmake-gui. Для командных интерфейсов к средствам тестирования и упаковки CMake см. ctest и cpack.
Для получения дополнительной информации о CMake в целом, см. ссылки в конце этого руководства.
Введение в системы сборки CMake
Система сборки описывает, как собрать исполняемые файлы и библиотеки проекта из исходного кода, используя инструмент сборки для автоматизации процесса. Например, система сборки может быть Makefile для использования с make инструментом командной строки или файлом проекта для интегрированной среды разработки (IDE). Для того, чтобы избежать поддержки нескольких таких систем сборки, проект может абстрактно указать свою систему сборки с помощью файлов, написанных на языке CMake language. Из этих файлов CMake генерирует предпочтительную систему сборки локально для каждого пользователя через бэкенд, называемый генератором.
Для генерации системы сборки с помощью CMake необходимо выбрать следующие элементы:
- Дерево исходного кода
-
Верхнеуровневая директория, содержащая исходные файлы, предоставленные проектом. Проект указывает свою систему сборки, используя файлы, как описано в
cmake-language(7)руководстве, начиная с верхнеуровневого файла, названногоCMakeLists.txt. Эти файлы задают целевые объекты сборки и их зависимости, как описано вcmake-buildsystem(7)руководстве. - Дерево сборки
-
Верхнеуровневая директория, в которой будут храниться файлы системы сборки и артефакты вывода сборки (например, исполняемые файлы и библиотеки). CMake запишет файл
CMakeCache.txtдля идентификации директории как дерева сборки и хранения постоянной информации, такой как параметры конфигурации системы сборки.Чтобы сохранить чистоту дерева исходного кода, выполните сборку вне исходного дерева, используя отдельное выделенное дерево сборки. Внутридеревовая сборка, в которой дерево сборки размещается в той же директории, что и дерево исходного кода, также поддерживается, но не рекомендуется.
- Генератор
-
Это выбирает тип системы сборки для генерации. См.
cmake-generators(7)руководство для документации всех генераторов. Запуститеcmake --helpдля просмотра списка доступных локально генераторов. Дополнительно используйте опцию-Gниже для указания генератора или просто примите значение по умолчанию, выбранное CMake для текущей платформы.При использовании одного из генераторов инструментов сборки командной строки CMake ожидает, что среда, необходимая для компилятора, уже настроена в оболочке. При использовании одного из генераторов инструментов сборки IDE, никакой особой среды не требуется.
Сгенерировать систему сборки проекта
Запустите CMake с одной из следующих команд, чтобы указать исходное и целевое дерево и сгенерировать систему сборки:
-
cmake [<options>] <path-to-source> -
Использует текущую рабочую директорию как дерево сборки и
<path-to-source>как дерево исходного кода. Указанный путь может быть абсолютным или относительным к текущей рабочей директории. Дерево исходного кода должно содержать файлCMakeLists.txtи не должно содержать файлCMakeCache.txt, так как последний идентифицирует существующее дерево сборки. Например:$ mkdir build ; cd build $ cmake ../src
-
cmake [<options>] <path-to-existing-build> -
Использует
<path-to-existing-build>как дерево сборки и загружает путь к дереву исходного кода из файлаCMakeCache.txt, который должен быть уже сгенерирован предыдущим запуском CMake. Указанный путь может быть абсолютным или относительным к текущей рабочей директории. Например:$ cd build $ cmake .
-
cmake [<options>] -S <path-to-source> -B <path-to-build> -
Использует
<path-to-build>как дерево сборки и<path-to-source>как дерево исходного кода. Указанные пути могут быть абсолютными или относительными к текущей рабочей директории. Дерево исходного кода должно содержать файлCMakeLists.txt. Дерево сборки будет создано автоматически, если оно еще не существует. Например:$ cmake -S src -B build
Во всех случаях <options> может быть нулем или более опций из раздела Опции ниже.
После генерации системы сборки можно использовать соответствующий инструмент сборки для сборки проекта. Например, после использования генератора Unix Makefiles можно запустить make непосредственно:
$ make $ make install
В качестве альтернативы, можно использовать cmake для сборки проекта, автоматически выбирая и вызывая соответствующий инструмент сборки.
Опции
-
-S <path-to-source> -
Путь к корневому каталогу проекта CMake для построения.
-
-B <path-to-build> -
Путь к каталогу, который CMake будет использовать в качестве корня каталога построения.
Если каталог еще не существует, CMake создаст его.
-
-C <initial-cache> -
Предварительная загрузка скрипта для заполнения кэша.
Когда CMake впервые выполняется в пустом дереве построения, он создает файл
CMakeCache.txtи заполняет его настраиваемыми параметрами проекта. Этот параметр может быть использован для указания файла, из которого следует загрузить записи кэша до первого прохода по файлам CMake проекта. Загруженные записи имеют приоритет над значениями по умолчанию проекта. Указанный файл должен быть скриптом CMake, содержащим командыset(), которые используют опциюCACHE, а не файл формата кэша.Ссылки на
CMAKE_SOURCE_DIRиCMAKE_BINARY_DIRв скрипте ссылаются на верхнеуровневое дерево исходного и бинарного кода. -
-D <var>:<type>=<value>, -D <var>=<value> -
Создание или обновление записи CMake
CACHE.Когда CMake впервые выполняется в пустом дереве построения, он создает файл
CMakeCache.txtи заполняет его настраиваемыми параметрами проекта. Этот параметр может быть использован для указания параметра, который имеет приоритет над значением по умолчанию проекта. Параметр может быть повторен для любого количества записейCACHE.Если указана часть
:<type>, она должна быть одним из типов, указанных в документации командыset()для еёCACHEподписи. Если часть:<type>опущена, запись будет создана без типа, если она не существует с уже заданным типом. Если команда в проекте устанавливает тип наPATHилиFILEPATH, то<value>будет преобразована в абсолютный путь.Этот параметр также может быть задан как один аргумент:
-D<var>:<type>=<value>или-D<var>=<value>. -
-U <globbing_expr> -
Удаление соответствующих записей из кэша CMake
CACHE.Этот параметр может быть использован для удаления одной или нескольких переменных из файла
CMakeCache.txt, поддерживаются выражения подстановки*и?. Параметр может быть повторен для любого количества записейCACHE.Используйте с осторожностью, вы можете сделать свой
CMakeCache.txtнеработоспособным. -
-G <generator-name> -
Указание генератора системы построения.
CMake может поддерживать несколько систем построения на определённых платформах. Генератор отвечает за генерацию конкретной системы построения. Возможные имена генераторов указаны в руководстве
cmake-generators(7).Если не указано, CMake проверяет переменную окружения
CMAKE_GENERATORи в противном случае использует встроенный выбор по умолчанию. -
-T <toolset-spec> -
Указание набора инструментов для генератора, если он поддерживается.
Некоторые генераторы CMake поддерживают указание набора инструментов, чтобы указать системе построения, как выбрать компилятор. Подробнее см. переменную
CMAKE_GENERATOR_TOOLSET. -
-A <platform-name> -
Указание имени платформы, если оно поддерживается генератором.
Некоторые генераторы CMake поддерживают имя платформы, которое передаётся системе построения, чтобы выбрать компилятор или SDK. Подробнее см. переменную
CMAKE_GENERATOR_PLATFORM. -
--toolchain <path-to-file> -
Укажите файл цепочки инструментов кросс-компиляции, эквивалентный установке переменной
CMAKE_TOOLCHAIN_FILE. -
--install-prefix <directory> -
Укажите каталог установки, используемый переменной
CMAKE_INSTALL_PREFIX. Должен быть абсолютным путём. -
-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в не ошибки. -
-L[A][H] -
Список не-расширенных переменных кэша.
Список
CACHEпеременных запустит CMake и выведет все переменные из кэша CMakeCACHE, которые не помечены какINTERNALилиADVANCED. Это эффективно отобразит текущие настройки CMake, которые затем можно изменить с помощью опции-D. Изменение некоторых переменных может привести к созданию других переменных. Если указанA, то будут отображаться и расширенные переменные. Если указанH, то будет также выводиться справка для каждой переменной. -
-N -
Только режим просмотра.
Только загрузить кэш. Не выполнять фактически шаги конфигурации и генерации.
-
--graphviz=[file] -
Сгенерировать граф зависимостей graphviz, см.
CMakeGraphVizOptionsдля более подробной информации.Сгенерировать файл graphviz, который будет содержать все зависимости библиотек и исполняемых файлов в проекте. Дополнительную информацию см. в документации к
CMakeGraphVizOptions. -
--system-information [file] -
Вывести информацию об этой системе.
Вывести широкий спектр информации о текущей системе. Если запуск выполняется из верхней части бинарного дерева проекта CMake, он выведет дополнительную информацию, такую как кэш, файлы журналов и т. д.
-
--log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE> -
Установить уровень ведения журнала.
Команда
message()будет выводить сообщения только уровня, указанного или выше. Уровень журнала по умолчаниюSTATUS.Для сохранения уровня ведения журнала между запусками CMake, установите
CMAKE_MESSAGE_LOG_LEVELв качестве переменной кэша. Если заданы как параметр командной строки, так и переменная, имеет приоритет параметр командной строки.Для обратной совместимости,
--loglevelтакже принимается как синоним для этой опции. -
--log-context -
Включить вывод команды
message()с контекстом, прикреплённым к каждому сообщению.Эта опция включает отображение контекста только для текущего запуска CMake. Чтобы сделать отображение контекста постоянным для всех последующих запусков CMake, установите
CMAKE_MESSAGE_CONTEXT_SHOWв качестве переменной кэша. Когда задан этот параметр командной строки,CMAKE_MESSAGE_CONTEXT_SHOWигнорируется. -
--debug-trycompile -
Не удалять дерево построения
try_compile(). Полезно только для одного вызоваtry_compile()за раз.Не удалять файлы и каталоги, созданные для вызовов
try_compile(). Это полезно при отладке неудачных try_compiles. Однако это может изменить результаты try-compiles, так как старые остатки от предыдущего try-compile могут привести к тому, что другой тест либо пройдёт, либо не пройдёт неправильно. Эта опция лучше всего используется для одного try-compile за раз и только при отладке. -
--debug-output
-
Включить режим отладки CMake.
Выводить дополнительную информацию во время выполнения CMake, например, трассировки стека с вызовами
message(SEND_ERROR). -
--debug-find -
Включить режим отладки команд поиска CMake.
Выводить дополнительную информацию о вызовах поиска во время выполнения CMake в стандартный поток ошибок. Вывод предназначен для чтения человеком, а не для парсинга. Также см. переменную
CMAKE_FIND_DEBUG_MODEдля отладки более локальной части проекта. -
--trace -
Включить режим трассировки CMake.
Выводить трассировку всех вызовов и откуда они происходят.
-
--trace-expand -
Включить режим трассировки CMake.
Как и
--trace, но с подставленными переменными. -
--trace-format=<format> -
Включить режим трассировки CMake и установить формат вывода трассировки.
<format>может принимать одно из следующих значений.-
human -
Выводит каждую строку трассировки в удобочитаемом формате. Это формат по умолчанию.
-
json-v1 -
Выводит каждую строку как отдельную JSON-документ. Документы разделяются новой строкой (
\n). Гарантируется, что внутри JSON-документа символы новой строки отсутствуют.Формат трассировки в JSON:
{ "file": "/full/path/to/the/CMake/file.txt", "line": 0, "cmd": "add_executable", "args": ["foo", "bar"], "time": 1579512535.9687231, "frame": 2 }Члены:
-
file -
Полный путь к исходному файлу CMake, где был вызван метод.
-
line -
Строка в
fileвызова метода. -
defer -
Необязательный член, присутствующий, когда вызов метода был отложен командой
cmake_language(DEFER). Если присутствует, его значение — строка, содержащая отложенный вызов<id>. -
cmd -
Имя вызванного метода.
-
args -
Список строк всех параметров метода.
-
time -
Маркер времени (секунды с начала эпохи) вызова метода.
-
frame -
Глубина стека фрейма метода, который был вызван.
Кроме того, первый выведенный JSON-документ содержит ключ
versionдля текущей основной и дополнительной версииФормат трассировки в JSON:
{ "version": { "major": 1, "minor": 1 } }Члены:
-
version -
Указывает версию формата JSON. Версия имеет основные и второстепенные компоненты, следуя соглашениям о версионировании.
-
-
-
--trace-source=<file> -
Включить режим трассировки CMake, но выводить только строки из указанного файла.
Разрешено несколько вариантов.
-
--trace-redirect=<file> -
Включить режим трассировки CMake и перенаправить вывод трассировки в файл вместо stderr.
-
--warn-uninitialized -
Выводить предупреждения об инициализированных значениях.
Выводить предупреждение, когда используется неинициализированная переменная.
-
--warn-unused-vars -
Ничего не делает. В версиях CMake 3.2 и ниже это включало предупреждения об отсутствии использования переменных. В версиях CMake 3.3 по 3.18 этот параметр был нерабочим. В CMake 3.19 и выше параметр был удален.
-
--no-warn-unused-cli -
Не выводить предупреждения об опциях командной строки.
Не искать переменные, объявленные в командной строке, но не используемые.
-
--check-system-vars -
Искать проблемы с использованием переменных в системных файлах.
Обычно неиспользуемые и неинициализированные переменные ищутся только в
CMAKE_SOURCE_DIRиCMAKE_BINARY_DIR. Этот флаг заставляет CMake также предупреждать об этих файлах. -
--profiling-output=<path> -
Используется совместно с
--profiling-format, чтобы выводить данные в заданный путь. -
--profiling-format=<file> -
Включает вывод данных профилирования скрипта CMake в заданном формате.
Это может помочь в анализе производительности выполняемых скриптов CMake. Для обработки вывода в удобочитаемый формат необходимо использовать сторонние приложения.
В настоящее время поддерживаются значения:
google-trace, что выводит данные в формате Google Trace, которые можно проанализировать с помощью вкладки «Трассировка» в Google Chrome или с помощью плагина для инструмента, такого как Trace Compass. -
--preset <preset>, --preset=<preset> -
Считывает
presetиз<path-to-source>/CMakePresets.jsonи<path-to-source>/CMakeUserPresets.json. Пресет может указывать генератор, каталог сборки и список переменных и других аргументов для передачи в CMake. Текущий рабочий каталог должен содержать файлы пресетов CMake. ТакжеCMake GUIможет распознавать файлыCMakePresets.jsonиCMakeUserPresets.json. Более подробную информацию о этих файлах см. вcmake-presets(7).Пресеты считываются перед всеми другими опциями командной строки. Опции, указанные в пресете (переменные, генератор и т. д.), могут быть переопределены вручную в командной строке. Например, если пресет устанавливает переменную с именем
MYVARв значение1, но пользователь устанавливает её в2с аргументом-D, значение2имеет приоритет. -
--list-presets, --list-presets=<[configure | build | test | all]> -
Выводит список доступных пресетов. Если не указан параметр, будут перечислены только пресеты настройки. Текущий рабочий каталог должен содержать файлы пресетов CMake.
Режим сборки проекта
CMake предоставляет команду для сборки уже сгенерированного проекта:
cmake --build <dir> [<options>] [-- <build-tool-options>] cmake --build --preset <preset> [<options>] [-- <build-tool-options>]
Это абстрагирует интерфейс командной строки утилиты сборки с помощью следующих параметров:
-
--build <dir> -
Каталог двоичных файлов проекта для сборки. Требуется (если не указан пресет) и должен быть первым.
-
--preset <preset>, --preset=<preset> -
Использовать пресет сборки для указания опций сборки. Каталог двоичных файлов проекта определяется по ключу
configurePreset. Текущий рабочий каталог должен содержать файлы пресетов CMake. См.presetдля получения дополнительной информации. -
--list-presets -
Выводит список доступных пресетов сборки. Текущий рабочий каталог должен содержать файлы пресетов CMake.
-
--parallel [<jobs>], -j [<jobs>] -
Максимальное количество одновременных процессов для сборки. Если
<jobs>опущено, используется значение по умолчанию утилиты сборки.Переменная среды
CMAKE_BUILD_PARALLEL_LEVEL, если она задана, задаёт значение по умолчанию для параллельной сборки, если этот параметр не задан.Некоторые утилиты сборки всегда собирают параллельно. Использование значения
<jobs>в виде1может быть использовано для ограничения до одной задачи. -
--target <tgt>..., -t <tgt>... -
Собрать
<tgt>вместо целевого по умолчанию. Можно указать несколько целей, разделённых пробелами. -
--config <cfg> -
Для инструментов с несколькими конфигурациями, выбирает конфигурацию
<cfg>. -
--clean-first -
Собрать цель
cleanпервой, а затем все остальные. (Для очистки, используйте--target clean.) -
--use-stderr -
Игнорируется. Поведение по умолчанию в CMake >= 3.0.
-
--verbose, -v -
Включить подробный вывод (если поддерживается) с командами сборки, которые будут выполнены.
Этот параметр можно опустить, если переменная среды
VERBOSEили кэшированная переменнаяCMAKE_VERBOSE_MAKEFILEустановлены. -
-- -
Передать оставшиеся параметры утилите.
Запустите cmake --build без параметров для быстрого справки.
Установка проекта
CMake предоставляет команду для установки уже сгенерированного проекта:
cmake --install <dir> [<options>]
Это может быть использовано после сборки проекта для выполнения установки без использования сгенерированной системы сборки или утилиты сборки. Параметры:
-
--install <dir> -
Каталог двоичных файлов проекта для установки. Требуется и должен быть первым.
-
--config <cfg> -
Для генераторов с несколькими конфигурациями, выбирает конфигурацию
<cfg>. -
--component <comp> -
Установка на основе компонентов. Установить только компонент
<comp>. -
--default-directory-permissions <permissions> -
Права установки по умолчанию. Права в формате
<u=rwx,g=rx,o=rx>. -
--prefix <prefix> -
Переопределить префикс установки
CMAKE_INSTALL_PREFIX. -
--strip -
Сжать перед установкой.
-
-v, --verbose -
Включить подробный вывод.
Этот параметр можно опустить, если переменная среды
VERBOSEустановлена.
Запустите cmake --install без параметров для быстрого справки.
Открытие проекта
cmake --open <dir>
Открыть сгенерированный проект в соответствующем приложении. Поддерживается только некоторыми генераторами.
Выполнение скрипта
cmake [{-D <var>=<value>}...] -P <cmake-script-file> [-- <unparsed-options>...]
Обработать данный файл CMake как скрипт, написанный на языке CMake. Этап настройки или генерации не выполняется, кэш не изменяется. Если переменные определены с помощью -D, это должно быть сделано до аргумента -P.
Любые параметры после -- не анализируются CMake, но всё же включаются в набор переменных CMAKE_ARGV<n>, передаваемых скрипту (включая сам --).
Выполнение инструмента командной строки
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в противном случае. -
supportedPlatforms -
Новое в версии 3.21.
Необязательный член, который может присутствовать, когда генератор поддерживает указание платформы через
CMAKE_GENERATOR_PLATFORM(-A ...). Значение — список известных поддерживаемых платформ. -
extraGenerators -
Список строк со всеми дополнительными генераторами, совместимыми с генератором.
-
-
fileApi -
Необязательный член, присутствующий, когда доступен
cmake-file-api(7). Значение — JSON-объект с одним членом:-
requests -
JSON-массив, содержащий ноль или более поддерживаемых запросов к API файлов. Каждый запрос — это JSON-объект с членами:
-
kind -
Указывает один из поддерживаемых типов объектов.
-
version -
JSON-массив, элементы которого — каждый JSON-объект, содержащий
majorиminorчлены, определяющие целые неотрицательные компоненты версии.
-
-
-
serverMode -
true, если cmake поддерживает режим сервера, иfalseв противном случае. Всегда ложно начиная с CMake 3.20.
-
-
cat <files>... -
Конкатенация файлов и вывод на стандартный вывод.
-
chdir <dir> <cmd> [<arg>...] -
Изменение текущей рабочей директории и выполнение команды.
-
compare_files [--ignore-eol] <file1> <file2> -
Проверка, совпадают ли
<file1>и<file2>. Если файлы совпадают, то возвращает0, в противном случае —1. В случае неверных аргументов возвращает 2. Опция--ignore-eolподразумевает сравнение по строкам и игнорирует различия LF/CRLF. -
copy <file>... <destination> -
Копирование файлов в
<destination>(файл или директория). Если указано несколько файлов,<destination>должно быть директорией и существовать. Поддержка шаблонов не реализована.copyследует за символическими ссылками. Это означает, что он не копирует символические ссылки, а файлы или директории, на которые они указывают. -
copy_directory <dir>... <destination> -
Копирование содержимого директорий
<dir>...в директорию<destination>. Если директория<destination>не существует, она будет создана.copy_directoryследует за символическими ссылками. -
copy_if_different <file>... <destination> -
Копирование файлов в
<destination>(файл или директория), если они были изменены. Если указано несколько файлов,<destination>должно быть директорией и существовать.copy_if_differentследует за символическими ссылками. -
create_symlink <old> <new> -
Создание символической ссылки
<new>с именем<old>.Примечание
Путь, где будет создана символическая ссылка
<new>, должен существовать. -
create_hardlink <old> <new> -
Создание жёсткой ссылки
<new>с именем<old>.Примечание
Путь, где будет создана жёсткая ссылка
<new>, должен существовать. Файл<old>должен существовать. -
echo [<string>...] -
Отображение аргументов как текста.
-
echo_append [<string>...] -
Отображение аргументов как текста, без новой строки.
-
env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]... -
Выполнение команды в изменённой среде.
-
environment -
Отображение текущих переменных среды.
-
false -
Ничего не делать, с кодом выхода 1.
-
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>... -
Устарело начиная с версии 3.17.
Удаление файла(ов). Планировалось, что если какой-либо из перечисленных файлов уже не существует, команда возвращает ненулевой код выхода, но сообщение не регистрируется. Опция
-fизменяет поведение, возвращая нулевой код выхода (т. е. успех) в таких ситуациях вместо этого.removeне следует за символическими ссылками. Это означает, что он удаляет только символические ссылки, а не файлы, на которые они указывают.Реализация была ошибочной и всегда возвращала 0. Исправить это без нарушения обратной совместимости невозможно. Используйте
rmвместо этого. -
remove_directory <dir>... -
Устарело начиная с версии 3.17.
Удаление директорий
<dir>и их содержимого. Если директория не существует, она будет проигнорирована. Если<dir>является символической ссылкой на директорию, будет удалена только символическая ссылка. Используйтеrmвместо этого. -
rename <oldname> <newname> -
Переименование файла или директории (на одном томе). Если файл с именем
<newname>уже существует, он будет молча заменён. -
rm [-rRf] <file> <dir>... -
Удаление файлов
<file>или директорийdir. Используйте-rили-Rдля рекурсивного удаления директорий и их содержимого. Если какой-либо из перечисленных файлов/директорий не существует, команда возвращает ненулевой код выхода, но сообщение не регистрируется. Опция-fизменяет поведение, возвращая нулевой код выхода (т. е. успех) в таких ситуациях вместо этого. -
server -
Запуск режима
cmake-server(7). -
sleep <number>... -
Задержка на заданное количество секунд.
-
tar [cxt][vf][zjJ] file.tar [<options>] [--] [<pathname>...] -
Создание или извлечение архива tar или zip. Опции:
-
c -
Создание нового архива, содержащего указанные файлы. Если используется, аргумент
<pathname>...обязателен. -
x -
Извлечение из архива на диск. Аргумент
<pathname>...может использоваться для извлечения только выбранных файлов или директорий. При извлечении выбранных файлов или директорий необходимо предоставить их точные имена, включая путь, как выводится командой list (-t). -
t -
Вывод содержимого архива. Аргумент
<pathname>...может использоваться для вывода только выбранных файлов или директорий. -
v -
Вывод подробной информации.
-
z -
Сжатие полученного архива с помощью gzip.
-
j -
Сжатие полученного архива с помощью bzip2.
-
J -
Сжатие полученного архива с помощью XZ.
-
--zstd -
Сжатие полученного архива с помощью Zstandard.
-
--files-from=<file> -
Чтение имён файлов из заданного файла, по одному в строке. Пустые строки игнорируются. Строки не могут начинаться с
-за исключением--add-file=<name>для добавления файлов, имена которых начинаются с-. -
--format=<format> -
Указание формата создаваемого архива. Поддерживаемые форматы:
7zip,gnutar,pax,paxr(ограниченный pax, по умолчанию) иzip. -
--mtime=<date> -
Указание времени модификации, записываемого в записи tarball.
-
-- -
Прекращение интерпретации опций и обработка всех оставшихся аргументов как имён файлов, даже если они начинаются с
-.
-
-
time <command> [<args>...] -
Выполнение команды и отображение времени выполнения.
-
touch <file>... -
Создаёт
<file>, если файл не существует. Если<file>существует, изменяет время доступа и модификации<file>. -
touch_nocreate <file>... -
Изменение времени файла, если он существует, но не создание его. Если файл не существует, он будет проигнорирован.
-
true -
Ничего не делать, с кодом выхода 0.
Инструменты командной строки, специфичные для Windows
Следующие cmake -E команды доступны только в Windows:
-
delete_regv <key> -
Удаляет значение из реестра Windows.
-
env_vs8_wince <sdkname> -
Отображает пакетный файл, который устанавливает среду для предоставленного SDK Windows CE, установленного в VS2005.
-
env_vs9_wince <sdkname> -
Отображает пакетный файл, который устанавливает среду для предоставленного SDK Windows CE, установленного в VS2008.
-
write_regv <key> <value> -
Записывает значение в реестр Windows.
Запуск инструмента поиска пакетов
CMake предоставляет вспомогательный инструмент типа pkg-config для проектов на основе Makefile:
cmake --find-package [<options>]
Он ищет пакет с помощью find_package() и выводит полученные флаги в стандартный вывод. Это может использоваться вместо pkg-config для поиска установленных библиотек в проектах на основе Makefile или в проектах на основе autoconf (через share/aclocal/cmake.m4).
Примечание
Этот режим не поддерживается должным образом из-за некоторых технических ограничений. Он поддерживается для совместимости, но не должен использоваться в новых проектах.
Просмотр справки
Для печати выбранных страниц из документации CMake используйте
cmake --help[-<topic>]
с одним из следующих параметров:
-
--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 <source-dir> --list-presets
См. также
Следующие ресурсы доступны для получения справки по использованию CMake:
- Главная страница
-
Основная отправная точка для изучения CMake.
- Документация в Интернете и ресурсы сообщества
-
https://cmake.org/documentation
Ссылки на доступную документацию и ресурсы сообщества можно найти на этой веб-странице.
- Форум Discourse
-
Форум Discourse предоставляет возможности для обсуждения и задавания вопросов по CMake.
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.22/manual/cmake.1.html