cmake(1)
Синопсис
Generate a Project Buildsystem
cmake [<options>] <path-to-source>
cmake [<options>] <path-to-existing-build>
cmake [<options>] -S <path-to-source> -B <path-to-build>
Build a Project
cmake --build <dir> [<options>] [-- <build-tool-options>]
Install a Project
cmake --install <dir> [<options>]
Open a Project
cmake --open <dir>
Run a Script
cmake [{-D <var>=<value>}...] -P <cmake-script-file>
Run a Command-Line Tool
cmake -E <command> [<options>]
Run the Find-Package Tool
cmake --find-package [<options>]
View Help
cmake --help[-<topic>] Описание
Исполняемый файл cmake является командной строкой кроссплатформенного генератора систем сборки CMake. В синопсисе выше перечислены различные действия, которые может выполнять инструмент, как описано в разделах ниже.
Для построения проекта программного обеспечения с помощью CMake, сгенерируйте систему сборки проекта. Дополнительно используйте cmake для сборки проекта, установки проекта или просто запустите соответствующий инструмент сборки (например, make) напрямую. cmake также можно использовать для просмотра справки.
Другие действия предназначены для использования разработчиками программного обеспечения, которые пишут скрипты на языке CMake language для поддержки их сборки.
Для графических пользовательских интерфейсов, которые могут использоваться вместо cmake, см. ccmake и cmake-gui. Для интерфейсов командной строки для средств тестирования и упаковки CMake см. ctest и cpack.
Для получения дополнительной информации о CMake в целом, см. также ссылки в конце этого руководства.
Введение в системы сборки CMake
Система сборки описывает, как построить исполняемые файлы и библиотеки проекта из исходного кода, используя инструмент сборки для автоматизации процесса. Например, система сборки может быть Makefile для использования с командно-строковым make инструментом или файлом проекта для интегрированной среды разработки (IDE). Чтобы избежать необходимости поддержки нескольких таких систем сборки, проект может абстрактно указать свою систему сборки, используя файлы, написанные на языке CMake language. Из этих файлов CMake генерирует предпочтительную систему сборки локально для каждого пользователя через бэкенд, называемый генератором.
Для генерации системы сборки с помощью CMake необходимо выбрать следующее:
- Дерево исходного кода
-
Верхнеуровневый каталог, содержащий исходные файлы, предоставленные проектом. Проект указывает свою систему сборки, используя файлы, как описано в руководстве
cmake-language(7), начиная с верхнеуровневого файла, названногоCMakeLists.txt. Эти файлы определяют целевые файлы сборки и их зависимости, как описано в руководствеcmake-buildsystem(7). - Дерево сборки
-
Верхнеуровневый каталог, в котором будут храниться файлы системы сборки и артефакты выходных данных сборки (например, исполняемые файлы и библиотеки). CMake запишет файл
CMakeCache.txtдля идентификации каталога как дерева сборки и сохранения постоянной информации, такой как параметры конфигурации системы сборки.Для поддержания чистого дерева исходного кода выполните сборку вне исходного каталога, используя отдельное выделенное дерево сборки. Также поддерживается сборка в исходном каталоге, в которой дерево сборки помещается в тот же каталог, что и дерево исходного кода, но это не рекомендуется.
- Генератор
-
Это выбирает вид системы сборки для генерации. См. руководство
cmake-generators(7)для документации по всем генераторам. Запуститеcmake --helpдля просмотра списка доступных локально генераторов. Дополнительно используйте параметр-Gниже для указания генератора или просто примите значение по умолчанию, выбранное CMake для текущей платформы.При использовании одного из генераторов инструментов командной строки CMake ожидает, что среда, необходимая для инструментальной цепочки компилятора, уже настроена в оболочке. При использовании одного из генераторов инструментов IDE особая среда не требуется.
Сгенерировать систему сборки проекта
Запустите CMake с одним из следующих синтаксисов команд, чтобы указать деревья исходного кода и сборки и сгенерировать систему сборки:
-
cmake [<options>] <path-to-source> -
Использует текущий рабочий каталог в качестве дерева сборки и
<path-to-source>в качестве дерева исходного кода. Указанный путь может быть абсолютным или относительным к текущему рабочему каталогу. Дерево исходного кода должно содержать файлCMakeLists.txtи не должно содержать файлCMakeCache.txt, поскольку последний идентифицирует существующее дерево сборки. Например:$ mkdir build ; cd build $ cmake ../src
-
cmake [<options>] <path-to-existing-build> -
Использует
<path-to-existing-build>в качестве дерева сборки и загружает путь к дереву исходного кода из его файлаCMakeCache.txt, который должен был быть сгенерирован предыдущим запуском CMake. Указанный путь может быть абсолютным или относительным к текущему рабочему каталогу. Например:$ cd build $ cmake .
-
cmake [<options>] -S <path-to-source> -B <path-to-build> -
Использует
<path-to-build>в качестве дерева сборки и<path-to-source>в качестве дерева исходного кода. Указанные пути могут быть абсолютными или относительными к текущему рабочему каталогу. Дерево исходного кода должно содержать файлCMakeLists.txt. Дерево сборки будет создано автоматически, если оно еще не существует. Например:$ cmake -S src -B build
Во всех случаях <options> может содержать ноль или более параметров из раздела Параметры ниже.
После генерации системы сборки можно использовать соответствующий родной инструмент сборки для сборки проекта. Например, после использования генератора Unix Makefiles можно запустить make напрямую:
$ make $ make install
В качестве альтернативы, можно использовать cmake для сборки проекта, автоматически выбрав и вызвав соответствующий родной инструмент сборки.
Параметры
-
-S <path-to-source> -
Путь к корневому каталогу проекта CMake для построения.
-
-B <path-to-build> -
Путь к каталогу, который CMake будет использовать в качестве корня каталога построения.
Если каталог еще не существует, CMake его создаст.
-
-C <initial-cache> -
Предварительная загрузка скрипта для заполнения кэша.
Когда CMake впервые запускается в пустом дереве построения, он создаёт файл
CMakeCache.txtи заполняет его настраиваемыми параметрами проекта. Этот параметр может быть использован для указания файла, из которого следует загрузить записи кэша до первого прохода по файлам CMake проекта. Загруженные записи имеют приоритет над значениями по умолчанию проекта. Указанный файл должен быть скриптом CMake, содержащим командыset(), использующие параметрCACHE, а не файл в формате кэша.Ссылки на
CMAKE_SOURCE_DIRиCMAKE_BINARY_DIRв скрипте ссылаются на исходное и целевое дерево верхнего уровня. -
-D <var>:<type>=<value>, -D <var>=<value> -
Создание или обновление записи CMake
CACHE.Когда CMake впервые запускается в пустом дереве построения, он создаёт файл
CMakeCache.txtи заполняет его настраиваемыми параметрами проекта. Этот параметр может быть использован для указания параметра, который имеет приоритет над значением по умолчанию проекта. Параметр может быть повторён для любого количества записейCACHE.Если часть
:<type>указана, она должна быть одним из типов, указанных в документации командыset()для её подписиCACHE. Если часть:<type>опущена, запись будет создана без типа, если она не существует с уже заданным типом. Если команда в проекте устанавливает тип наPATHилиFILEPATH, то<value>будет преобразовано в абсолютный путь.Этот параметр также может быть указан как единственный аргумент:
-D<var>:<type>=<value>или-D<var>=<value>. -
-U <globbing_expr> -
Удаление соответствующих записей из кэша CMake
CACHE.Этот параметр может быть использован для удаления одной или нескольких переменных из файла
CMakeCache.txt; поддерживаются выражения подстановки*и?. Параметр может быть повторён для любого количества записейCACHE.Используйте с осторожностью, вы можете сделать свой проект
CMakeCache.txtнеработоспособным. -
-G <generator-name> -
Указание генератора системы построения.
CMake может поддерживать несколько собственных систем построения на определённых платформах. Генератор отвечает за генерацию конкретной системы построения. Возможные имена генераторов указаны в руководстве
cmake-generators(7).Если не указано, CMake проверяет переменную окружения
CMAKE_GENERATORи в противном случае возвращается к встроенному выбору по умолчанию. -
-T <toolset-spec> -
Указание набора инструментов для генератора, если он поддерживается.
Некоторые генераторы CMake поддерживают указание набора инструментов для того, чтобы указать родной системе построения, как выбрать компилятор. Подробности см. в переменной
CMAKE_GENERATOR_TOOLSET. -
-A <platform-name> -
Указание имени платформы, если оно поддерживается генератором.
Некоторые генераторы CMake поддерживают указание имени платформы для родной системы построения, чтобы выбрать компилятор или SDK. Подробности см. в переменной
CMAKE_GENERATOR_PLATFORM. -
-Wno-dev -
Отключение предупреждений для разработчиков.
Отключение предупреждений, предназначенных для автора файлов
CMakeLists.txt. По умолчанию это также выключит предупреждения о устаревании. -
-Wdev -
Включение предупреждений для разработчиков.
Включение предупреждений, предназначенных для автора файлов
CMakeLists.txt. По умолчанию это также включит предупреждения об устаревании. -
-Werror=dev -
Преобразование предупреждений для разработчиков в ошибки.
Преобразование предупреждений, предназначенных для автора файлов
CMakeLists.txtв ошибки. По умолчанию это также преобразует предупреждения об устаревании в ошибки. -
-Wno-error=dev -
Преобразование предупреждений для разработчиков не в ошибки.
Преобразование предупреждений, предназначенных для автора файлов
CMakeLists.txtне в ошибки. По умолчанию это также отключит предупреждения об устаревании как ошибки. -
-Wdeprecated -
Включение предупреждений об устаревшем функционале.
Включение предупреждений об использовании устаревшего функционала, предназначенных для автора файлов
CMakeLists.txt. -
-Wno-deprecated -
Отключение предупреждений об устаревшем функционале.
Отключение предупреждений об использовании устаревшего функционала, предназначенных для автора файлов
CMakeLists.txt. -
-Werror=deprecated -
Преобразование предупреждений об устаревших макросах и функциях в ошибки.
Преобразование предупреждений об использовании устаревших макросов и функций, предназначенных для автора файлов
CMakeLists.txtв ошибки. -
-Wno-error=deprecated -
Преобразование предупреждений об устаревших макросах и функциях не в ошибки.
Преобразование предупреждений об использовании устаревших макросов и функций, предназначенных для автора файлов
CMakeLists.txtне в ошибки. -
-L[A][H] -
Список не-расширенных переменных кэша.
Команда вывода
CACHEпеременных запустит CMake и выведет все переменные из файла кэша CMakeCACHE, которые не помечены какINTERNALилиADVANCED. Это позволит эффективно отобразить текущие настройки CMake, которые затем могут быть изменены с помощью параметра-D. Изменение некоторых переменных может привести к созданию большего числа переменных. ЕслиAуказан, то он также отобразит расширенные переменные. ЕслиHуказан, он также отобразит справку по каждой переменной. -
-N -
Только режим просмотра.
Только загрузка кэша. Фактически шаги конфигурации и генерации не выполняются.
-
--graphviz=[file] -
Генерация графика зависимостей graphviz, см.
CMakeGraphVizOptionsдля получения дополнительной информации.Генерация файла graphviz, который будет содержать все зависимости библиотек и исполняемых файлов в проекте. Смотрите документацию по
CMakeGraphVizOptionsдля получения дополнительной информации. -
--system-information [file] -
Вывод информации об этой системе.
Вывод широкого спектра информации об текущей системе. Если запуск производится из корня двоичного дерева проекта CMake, он выведет дополнительную информацию, такую как кэш, файлы журналов и т.д.
-
--log-level=<ERROR|WARNING|NOTICE|STATUS|VERBOSE|DEBUG|TRACE> -
Установка уровня ведения журнала.
Команда
message()будет выводить сообщения только указанного уровня ведения журнала или выше. По умолчанию уровень ведения журналаSTATUS.Чтобы сохранить уровень ведения журнала между запусками CMake, установите
CMAKE_MESSAGE_LOG_LEVELкак переменную кэша. Если указан параметр командной строки и переменная, имеет приоритет параметр командной строки.Для обеспечения обратной совместимости,
--loglevelтакже принимается как синоним для этого параметра. -
--log-context -
Включить вывод команды
message()с контекстом, прикреплённым к каждому сообщению.Этот параметр включает отображение контекста только для текущего выполнения CMake. Чтобы сделать отображение контекста постоянным для всех последующих запусков CMake, установите
CMAKE_MESSAGE_CONTEXT_SHOWкак переменную кэша вместо этого. Когда указан параметр командной строки,CMAKE_MESSAGE_CONTEXT_SHOWигнорируется. -
--debug-trycompile -
Не удалять дерево построения
try_compile(). Полезно только для одного вызоваtry_compile()за раз.Не удалять файлы и каталоги, созданные для вызовов
try_compile(). Это полезно при отладке неудачных try_compiles. Однако это может изменить результаты try-compiles, так как старые остатки предыдущей попытки try-compile могут привести к тому, что другой тест будет либо правильно пройти, либо не пройти. -
--debug-output -
Перевести CMake в отладочный режим.
Выводить дополнительную информацию во время выполнения CMake, например, трассировки стека с вызовами
message(SEND_ERROR). -
--debug-find
-
Включить режим отладки для команд cmake find.
Выводить дополнительную информацию о вызовах find во время выполнения cmake в стандартный поток ошибок. Вывод предназначен для чтения человеком, а не для парсинга. Также см. переменную
CMAKE_FIND_DEBUG_MODEдля отладки более локальной части проекта. -
--trace -
Переключить cmake в режим трассировки.
Выводить трассировку всех вызовов и откуда они происходят.
-
--trace-expand -
Переключить cmake в режим трассировки.
Как и
--trace, но с подстановкой переменных. -
--trace-format=<format> -
Переключить cmake в режим трассировки и установить формат вывода трассировки.
<format>может принимать одно из следующих значений.-
human -
Выводит каждую строку трассировки в удобочитаемом формате. Это формат по умолчанию.
-
json-v1 -
Выводит каждую строку как отдельный JSON-документ. Документы разделены новой строкой (
\n). Гарантируется, что внутри JSON-документа нет символов новой строки.Формат трассировки JSON:
{ "file": "/full/path/to/the/CMake/file.txt", "line": 0, "cmd": "add_executable", "args": ["foo", "bar"], "time": 1579512535.9687231, "frame": 2 }Поля:
-
file -
Полный путь к исходному файлу CMake, где был вызван метод.
-
line -
Строка в
fileвызова функции. -
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 доступны следующие ресурсы:
- Главная страница
-
Основная отправная точка для обучения CMake.
- Онлайн-документация и ресурсы сообщества
-
https://cmake.org/documentation
Ссылки на доступную документацию и ресурсы сообщества можно найти на этой веб-странице.
- Форум Discourse
-
Форум Discourse предоставляет форум для обсуждения и вопросов о CMake.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.17/manual/cmake.1.html