Spec-Zone.ru › CMake 3.22

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 и выведет все переменные из кэша CMake CACHE, которые не помечены как 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:

Главная страница

https://cmake.org

Основная отправная точка для изучения CMake.

Документация в Интернете и ресурсы сообщества

https://cmake.org/documentation

Ссылки на доступную документацию и ресурсы сообщества можно найти на этой веб-странице.

Форум Discourse

https://discourse.cmake.org

Форум 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API