Spec-Zone.ru › CMake 3.19

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 и выведет все переменные из файла кэша 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 могут привести к тому, что другой тест будет либо правильно пройти, либо не пройти.

--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 доступны следующие ресурсы:

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

https://cmake.org

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

Онлайн-документация и ресурсы сообщества

https://cmake.org/documentation

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

Форум Discourse

https://discourse.cmake.org

На форуме 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

Spec-Zone.ru

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