Spec-Zone.ru › CMake 3.17

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 вызова функции.

cmd

Имя функции, которая была вызвана.

args

Список строк всех параметров функции.

time

Отметка времени (секунды с начала эпохи) вызова функции.

frame

Глубина стека фрейма функции, которая была вызвана.

Кроме того, первый выводимый JSON-документ содержит поле version для текущей основной и дополнительной версии

Формат трассировки JSON:

{
  "version": {
    "major": 1,
    "minor": 0
  }
}

Поля:

version

Указывает версию формата JSON. Версия имеет главную и дополнительную компоненты, следующие соглашениям семантической версии.

--trace-source=<file>

Переключить cmake в режим трассировки, но выводить только строки из указанного файла.

Разрешается несколько опций.

--trace-redirect=<file>

Переключить cmake в режим трассировки и перенаправить вывод трассировки в файл вместо stderr.

--warn-uninitialized

Выводить предупреждения об инициализированных значениях.

Выводить предупреждение, когда используется неинициализированная переменная.

--warn-unused-vars

Выводить предупреждения об unused переменных.

Поиск переменных, которые объявлены или заданы, но не используются.

--no-warn-unused-cli

Не выводить предупреждения о параметрах командной строки.

Не искать переменные, объявленные в командной строке, но не используемые.

--check-system-vars

Поиск проблем с использованием переменных в системных файлах.

Обычно, неиспользуемые и неинициализированные переменные ищутся только в CMAKE_SOURCE_DIR и CMAKE_BINARY_DIR. Этот флаг заставляет CMake предупреждать о других файлах.

Сборка проекта

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>.

--prefix <prefix>

Переопределить префикс установки, CMAKE_INSTALL_PREFIX.

--strip

Выполнить удаление перед установкой.

-v, --verbose

Включить подробный вывод.

Этот параметр можно опустить, если переменная окружения VERBOSE установлена.

Запустите cmake --install без параметров для получения краткой справки.

Открытие проекта

cmake --open <dir>

Открыть сгенерированный проект в соответствующем приложении. Поддерживается только некоторыми генераторами.

Выполнение скрипта

cmake [{-D <var>=<value>}...] -P <cmake-script-file>

Обработать данный файл cmake как скрипт на языке CMake. Шаг настройки или генерации не выполняется, и кэш не изменяется. Если переменные определены с использованием -D, это должно быть сделано перед аргументом -P.

Запуск командной строки

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, содержащий ноль или более поддерживаемых запросов к файловой API. Каждый запрос — объект JSON с членами:

kind

Указывает один из поддерживаемых видов объектов.

version

Массив JSON, элементы которого — каждый объект JSON, содержащий major и minor члены, определяющие целочисленные компоненты версий, не меньшие нуля.

serverMode

true если cmake поддерживает серверный режим, и false в противном случае.

chdir <dir> <cmd> [<arg>...]

Изменить текущую рабочую директорию и выполнить команду.

compare_files [--ignore-eol] <file1> <file2>

Проверить, совпадают ли <file1> и <file2>. Если файлы совпадают, возвращает 0, в противном случае 1. Опция --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>, должен существовать.

echo [<string>...]

Отображает аргументы как текст.

echo_append [<string>...]

Отображает аргументы как текст, но без новой строки.

env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...

Выполняет команду в изменённой среде.

environment

Отображает текущие переменные среды.

false

Ничего не делает, с кодом выхода 1.

make_directory <dir>...

Создаёт директории <dir>. При необходимости создаёт также родительские директории. Если директория уже существует, она будет проигнорирована.

md5sum <file>...

Создаёт контрольную сумму MD5 файлов в формате, совместимом с md5sum.

351abe79cd3800b38cdfb25d45015a15  file1.txt
052f86c15bbde68af55c7f7b340ab639  file2.txt
sha1sum <file>...

Создаёт контрольную сумму SHA1 файлов в формате, совместимом с sha1sum.

4bb7932a29e6f73c97bb9272f2bdc393122f86e0  file1.txt
1df4c8f318665f9a5f2ed38f55adadb7ef9f559c  file2.txt
sha224sum <file>...

Создаёт контрольную сумму SHA224 файлов в формате, совместимом с sha224sum.

b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930  file1.txt
6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24  file2.txt
sha256sum <file>...

Создаёт контрольную сумму SHA256 файлов в формате, совместимом с sha256sum.

76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc  file1.txt
15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea  file2.txt
sha384sum <file>...

Создаёт контрольную сумму SHA384 файлов в формате, совместимом с sha384sum.

acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434  file1.txt
668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d  file2.txt
sha512sum <file>...

Создаёт контрольную сумму SHA512 файлов в формате, совместимом с sha512sum.

2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89  file1.txt
7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d  file2.txt
remove [-f] <file>...

Устарело начиная с версии 3.17.

Удаляет файл(ы). Планировалось, что если какой-либо из перечисленных файлов отсутствует, команда вернёт код ошибки, но сообщение не будет записано. Опция -f изменяет поведение, чтобы возвращать нулевой код выхода (т.е. успех) в таких ситуациях. remove не следует символичным ссылкам. Это означает, что он удаляет только символичные ссылки, а не файлы, на которые они указывают.

Реализация была некорректной и всегда возвращала 0. Она не может быть исправлена без нарушения обратной совместимости. Используйте rm вместо этого.

remove_directory <dir>...

Устарело начиная с версии 3.17.

Удаляет директории <dir> и их содержимое. Если директория не существует, она будет проигнорирована. Если <dir> является символичной ссылкой на директорию, будет удалена только символичная ссылка. Используйте rm вместо этого.

rename <oldname> <newname>

Переименовывает файл или директорию (на одном томе). Если файл с <newname> именем уже существует, он будет безвозвратно заменён.

rm [-rRf] <file> <dir>...

Удаляет файлы <file> или директории dir Используйте -r или -R для рекурсивного удаления директорий и их содержимого. Если какой-либо из указанных файлов/директорий не существует, команда вернёт код ошибки, но сообщение не будет записано. Опция -f изменяет поведение, чтобы возвращать нулевой код выхода (т.е. успех) в таких ситуациях вместо этого.

server

Запустить cmake-server(7) режим.

sleep <number>...

Засыпать на заданное количество секунд.

tar [cxt][vf][zjJ] file.tar [<options>] [--] [<pathname>...]

Создаёт или распаковывает архив tar или zip. Опции:

c

Создаёт новый архив, содержащий указанные файлы. Если используется, аргумент <pathname>... обязателен.

x

Распаковывает архив на диск. Аргумент <pathname>... может использоваться для распаковки только выбранных файлов или директорий. При распаковке выбранных файлов или директорий вы должны предоставить их точные имена, включая путь, как показано в списке (-t).

t

Отображает содержимое архива. Аргумент <pathname>... может использоваться для отображения только выбранных файлов или директорий.

v

Выводит подробную информацию.

z

Сжимает получившийся архив с помощью gzip.

j

Сжимает получившийся архив с помощью bzip2.

J

Сжимает получившийся архив с помощью XZ.

--zstd

Сжимает получившийся архив с помощью Zstandard.

--files-from=<file>

Читает имена файлов из заданного файла, по одному в строке. Пустые строки игнорируются. Строки не могут начинаться с - за исключением --add-file=<name> для добавления файлов, имена которых начинаются с -.

--format=<format>

Указывает формат создаваемого архива. Поддерживаются форматы: 7zip, gnutar, pax, paxr (ограниченный pax, по умолчанию) и zip.

--mtime=<date>

Указывает время изменения, записываемое в записи архива tar.

--

Прекращает интерпретацию опций и обрабатывает все оставшиеся аргументы как имена файлов, даже если они начинаются с -.

time <command> [<args>...]

Выполняет команду и отображает время выполнения.

touch <file>...

Создаёт <file> если файл не существует. Если <file> существует, он изменяет <file> время доступа и изменения.

touch_nocreate <file>...

Изменяет метку файла, если он существует, но не создаёт его. Если файл не существует, он будет проигнорирован.

true

Ничего не делает, с кодом выхода 0.

Windows-специфические инструменты командной строки

Следующие cmake -E команды доступны только в Windows:

delete_regv <key>

Удаляет значение из реестра Windows.

env_vs8_wince <sdkname>

Отображает пакетный файл, который задаёт среду для установленного SDK Windows CE в VS2005.

env_vs9_wince <sdkname>

Отображает пакетный файл, который задаёт среду для установленного SDK Windows CE в VS2008.

write_regv <key> <value>

Записывает значение в реестр Windows.

Выполнение утилиты Find-Package

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>]

Показать заголовок имени/версии программы и выйти.

Если указан файл, версия записывается в него. Справка печатается в указанный файл, если он задан.

--help-full [<f>]

Вывести все руководства по справке и выйти.

Все руководства выводятся в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-manual <man> [<f>]

Вывести одно руководство по справке и выйти.

Указанное руководство выводится в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-manual-list [<f>]

Вывести список доступных руководств по справке и выйти.

Список содержит все руководства, для которых справка может быть получена с использованием параметра --help-manual, за которым следует имя руководства. Справка печатается в указанный файл, если он задан.

--help-command <cmd> [<f>]

Вывести справку по одной команде и выйти.

Запись справки cmake-commands(7) для <cmd> печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-command-list [<f>]

Вывести список команд со справкой и выйти.

Список содержит все команды, для которых справка может быть получена с использованием параметра --help-command за которым следует имя команды. Справка печатается в указанный файл, если он задан.

--help-commands [<f>]

Вывести руководство cmake-commands и выйти.

Руководство cmake-commands(7) печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-module <mod> [<f>]

Вывести справку по одному модулю и выйти.

Запись справки cmake-modules(7) для <mod> печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-module-list [<f>]

Вывести список модулей со справкой и выйти.

Список содержит все модули, для которых справка может быть получена с использованием параметра --help-module, за которым следует имя модуля. Справка печатается в указанный файл, если он задан.

--help-modules [<f>]

Вывести руководство cmake-modules и выйти.

Руководство cmake-modules(7) печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-policy <cmp> [<f>]

Вывести справку по одной политике и выйти.

Запись справки cmake-policies(7) для <cmp> печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-policy-list [<f>]

Вывести список политик со справкой и выйти.

Список содержит все политики, для которых справка может быть получена с использованием параметра --help-policy за которым следует имя политики. Справка печатается в указанный файл, если он задан.

--help-policies [<f>]

Вывести руководство cmake-policies и выйти.

Руководство cmake-policies(7) печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-property <prop> [<f>]

Вывести справку по одному свойству и выйти.

Записи справок cmake-properties(7) для <prop> печатаются в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-property-list [<f>]

Вывести список свойств со справкой и выйти.

Список содержит все свойства, для которых справка может быть получена с использованием параметра --help-property за которым следует имя свойства. Справка печатается в указанный файл, если он задан.

--help-properties [<f>]

Вывести руководство cmake-properties и выйти.

Руководство cmake-properties(7) печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-variable <var> [<f>]

Вывести справку по одной переменной и выйти.

Запись справки cmake-variables(7) для <var> печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

--help-variable-list [<f>]

Вывести список переменных со справкой и выйти.

Список содержит все переменные, для которых справка может быть получена с использованием параметра --help-variable за которым следует имя переменной. Справка печатается в указанный файл, если он задан.

--help-variables [<f>]

Вывести руководство cmake-variables и выйти.

Руководство cmake-variables(7) печатается в удобочитаемом текстовом формате. Справка печатается в указанный файл, если он задан.

См. также

Для получения помощи по использованию 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.17/manual/cmake.1.html

Spec-Zone.ru

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