Spec-Zone.ru › CMake 3.18

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

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

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

--profiling-output=<path>

Используется совместно с --profiling-format для вывода в заданный путь.

--profiling-format=<file>

Включить вывод данных профилирования скрипта CMake в заданном формате.

Это может помочь в анализе производительности исполняемых CMake скриптов. Для обработки вывода в удобочитаемый формат необходимо использовать сторонние приложения.

В настоящее время поддерживаются значения: google-trace Вывод в формате трассировки Google, который можно проанализировать с помощью вкладки «about:tracing» в Google Chrome или с помощью плагина для инструмента, такого как Trace Compass.

Построение проекта

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> [-- <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. Опция --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>

Указание времени изменения, записываемого в записи 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.

Выполнение инструмента 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>]

Отображает баннер с именем программы/версией и завершает работу.

Если задан файл, версия записывается в него. Справка выводится в указанный файл <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 доступны следующие ресурсы:

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

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.18/manual/cmake.1.html

Spec-Zone.ru

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