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переменных запустит 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 могут привести к тому, что другой тест будет либо правильно пройти, либо не пройти. -
--debug-output -
Перевести CMake в отладочный режим.
Выводить дополнительную информацию во время выполнения CMake, например, трассировки стека с вызовами
message(SEND_ERROR). -
--debug-find
-
Включить режим отладки команд cmake find.
Выводить дополнительную информацию о вызовах find во время выполнения 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, которые могут быть обработаны вкладкой about:tracing Google Chrome или с помощью плагина для инструмента, такого как Trace Compass. -
--preset=<preset> -
Читает
presetиз<path-to-source>/CMakePresets.jsonи<path-to-source>/CMakeUserPresets.json. Пресет определяет генератор и директорию сборки, а также необязательный список переменных и других аргументов для передачи CMake.CMake GUIтакже может распознавать файлыCMakePresets.jsonиCMakeUserPresets.json. Подробности об этих файлах см. вcmake-presets(7).Пресеты читаются до всех других параметров командной строки. Параметры, указанные в пресете (переменные, генератор и т. д.), можно переопределить, указав их вручную в командной строке. Например, если пресет устанавливает переменную
MYVARв значение1, а пользователь устанавливает её в значение2с аргументом-D, предпочтение отдаётся значению2.
Построение проекта
CMake предоставляет командную строку для построения уже сгенерированного проекта бинарного дерева:
cmake --build <dir> [<options>] [-- <build-tool-options>]
Это абстрагирует интерфейс командной строки средства построения с помощью следующих опций:
-
--build <dir> -
Директория бинарного дерева проекта, подлежащая построению. Требуется и должна быть первой.
-
--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в противном случае.
-
-
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>является символьным указателем на директорию, удаляется только символьнaя ссылка. Используйте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> -
Отображает пакетный файл, устанавливающий среду для установленного в VS2005 Windows CE SDK.
-
env_vs9_wince <sdkname> -
Отображает пакетный файл, устанавливающий среду для установленного в VS2008 Windows CE SDK.
-
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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/manual/cmake.1.html