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. -
-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и вывод всех переменных из кэша 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 и ниже это активировало предупреждения об unused переменных. В версиях 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, который может быть проанализирован вкладкой «about:tracing» в 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> | --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в противном случае. -
extraGenerators -
Список строк со всеми дополнительными генераторами, совместимыми с данным генератором.
-
-
fileApi -
Необязательный член, присутствующий, когда доступен
cmake-file-api(7). Значение — JSON-объект с одним членом:-
requests -
JSON-массив, содержащий ноль или более поддерживаемых запросов file-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>...может быть использован для извлечения только выбранных файлов или директорий. При извлечении выбранных файлов или директорий необходимо указать их точные имена, включая путь, как указано в списке (-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> -
Указывает время изменения, записываемое в записи архива tar.
-
-- -
Прекращает интерпретацию опций и обрабатывает все оставшиеся аргументы как имена файлов, даже если они начинаются с
-.
-
-
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.20/manual/cmake.1.html