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> может быть нулем или более из Параметров ниже.
После генерации системы сборки можно использовать соответствующий инструмент native сборки для построения проекта. Например, после использования генератора Unix Makefiles можно запустить make напрямую:
$ make $ make install
В качестве альтернативы, можно использовать cmake для Сборки проекта путем автоматического выбора и вызова соответствующего инструмента native сборки.
Параметры
-
-S <path-to-source> -
Путь к корневой директории проекта CMake для сборки.
-
-B <path-to-build> -
Путь к директории, которую CMake будет использовать в качестве корня директории сборки.
Если директория ещё не существует, CMake создаст её.
-
-C <initial-cache> -
Предварительная загрузка скрипта для заполнения кэша.
При первой запуске CMake в пустой дереве сборки, он создаёт файл
CMakeCache.txtи заполняет его настраиваемыми параметрами проекта. Этот параметр позволяет указать файл для загрузки записей кэша до первого прохода по файлам CMake проекта. Загруженные записи имеют приоритет над значениями по умолчанию проекта. Указанный файл должен быть скриптом CMake, содержащим командыset(), использующие опциюCACHE, а не файл формата кэша.Ссылки на
CMAKE_SOURCE_DIRиCMAKE_BINARY_DIRв скрипте относятся к исходному дереву и дереву сборки верхнего уровня. -
-D <var>:<type>=<value>, -D <var>=<value> -
Создание или обновление записи CMake
CACHE.При первой запуске CMake в пустой дереве сборки, он создаёт файл
CMakeCache.txtи заполняет его настраиваемыми параметрами проекта. Этот параметр можно использовать для указания параметра, имеющего приоритет над значением по умолчанию проекта. Параметр может быть повторён для необходимого количества записейCACHE.Если часть
:<type>задана, она должна быть одного из типов, указанных в документации командыset()для еёCACHEсигнатуры. Если часть:<type>опущена, запись будет создана без типа, если она не существует с уже заданным типом. Если команда в проекте устанавливает тип вPATHилиFILEPATH, то<value>будет преобразована в абсолютный путь.Этот параметр также может быть задан как единственный аргумент:
-D<var>:<type>=<value>или-D<var>=<value>. -
-U <globbing_expr> -
Удаление соответствующих записей из кэша CMake
CACHE.Этот параметр можно использовать для удаления одной или нескольких переменных из файла
CMakeCache.txt, поддерживаются выражения с подстановкой*и?. Параметр может быть повторён для необходимого количества записейCACHE.Используйте с осторожностью, вы можете сделать свой
CMakeCache.txtнеработоспособным. -
-G <generator-name> -
Указание генератора системы сборки.
CMake может поддерживать несколько систем сборки на определённых платформах. Генератор отвечает за генерацию конкретной системы сборки. Возможные имена генераторов указаны в руководстве
cmake-generators(7).Если не указано, CMake проверяет переменную среды
CMAKE_GENERATORи в противном случае использует встроенный выбор по умолчанию. -
-T <toolset-spec> -
Указание набора инструментов для генератора, если он поддерживается.
Некоторые генераторы CMake поддерживают указание набора инструментов, чтобы указать родной системе сборки, как выбрать компилятор. Подробности см. в переменной
CMAKE_GENERATOR_TOOLSET. -
-A <platform-name> -
Указание имени платформы, если оно поддерживается генератором.
Некоторые генераторы CMake поддерживают указание имени платформы, чтобы указать родной системе сборки, какой компилятор или SDK выбрать. Подробности см. в переменной
CMAKE_GENERATOR_PLATFORM. -
--toolchain <path-to-file> -
Указание файла инструментальной цепочки для кросс-компиляции, эквивалентно установке переменной
CMAKE_TOOLCHAIN_FILE. -
--install-prefix <directory> -
Указание каталога установки, используемого переменной
CMAKE_INSTALL_PREFIX. Должен быть абсолютным путём. -
-Wno-dev -
Отключить предупреждения разработчиков.
Отключить предупреждения, предназначенные автору файлов
CMakeLists.txt. По умолчанию также отключаются предупреждения об устаревших функциях. -
-Wdev -
Включить предупреждения разработчиков.
Включить предупреждения, предназначенные автору файлов
CMakeLists.txt. По умолчанию также включаются предупреждения об устаревших функциях. -
-Werror=dev -
Превратить предупреждения разработчиков в ошибки.
Превратить предупреждения, предназначенные автору файлов
CMakeLists.txtв ошибки. По умолчанию также предупреждения об устаревших функциях считаются ошибками. -
-Wno-error=dev -
Превратить предупреждения разработчиков не в ошибки.
Превратить предупреждения, предназначенные автору файлов
CMakeLists.txtне в ошибки. По умолчанию также предупреждения об устаревших функциях не считаются ошибками. -
-Wdeprecated -
Включить предупреждения об устаревших функциях.
Включить предупреждения об использовании устаревших функций, предназначенных автору файлов
CMakeLists.txt. -
-Wno-deprecated -
Отключить предупреждения об устаревших функциях.
Отключить предупреждения об использовании устаревших функций, предназначенных автору файлов
CMakeLists.txt. -
-Werror=deprecated -
Превратить предупреждения об устаревших макросах и функциях в ошибки.
Превратить предупреждения об использовании устаревших макросов и функций, предназначенные автору файлов
CMakeLists.txtв ошибки. -
-Wno-error=deprecated -
Превратить предупреждения об устаревших макросах и функциях не в ошибки.
Превратить предупреждения об использовании устаревших макросов и функций, предназначенные автору файлов
CMakeLists.txtне в ошибки. -
-L[A][H] -
Список не-расширенных кэшированных переменных.
Список
CACHEпеременных запустит CMake и выведет все переменные из 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 могут привести к некорректной работе тестов (проход или сбой). Этот параметр лучше всего использовать для одного try-compile за раз и только при отладке. -
--debug-output -
Включить режим отладки в CMake.
Выводить дополнительную информацию во время выполнения CMake, такие как трассировки стека, с помощью вызовов
message(SEND_ERROR). -
--debug-find -
Включить режим отладки для команд поиска CMake.
Выводить дополнительную информацию о вызовах поиска во время выполнения CMake в стандартный вывод ошибок. Вывод предназначен для чтения человеком, а не для парсинга. Также см. переменную
CMAKE_FIND_DEBUG_MODEдля отладки более локальной части проекта. -
--trace -
Включить трассировочный режим в CMake.
Выводить трассировку всех вызовов и откуда они были сделаны.
-
--trace-expand -
Включить трассировочный режим в CMake.
Как
--trace, но с расширенными переменными. -
--trace-format=<format> -
Включить трассировочный режим в CMake и установить формат вывода трассировки.
<format>может принимать следующие значения.-
human -
Выводит каждую строку трассировки в удобочитаемом формате. Это формат по умолчанию.
-
json-v1 -
Выводит каждую строку в виде отдельного JSON-документа. Каждый документ разделен новой строкой (
\n). Гарантируется, что символы новой строки не будут присутствовать внутри JSON-документа.Формат трассировки в JSON:
{ "file": "/full/path/to/the/CMake/file.txt", "line": 0, "cmd": "add_executable", "args": ["foo", "bar"], "time": 1579512535.9687231, "frame": 2 }Члены:
-
file -
Полный путь к исходному файлу CMake, где была вызвана функция.
-
line -
Строка в
fileвызова функции. -
defer -
Необязательный элемент, присутствующий, когда вызов функции был отложен командой
cmake_language(DEFER). Если присутствует, его значение — строка, содержащая отложенный вызов<id>. -
cmd -
Имя вызываемой функции.
-
args -
Список строк всех параметров функции.
-
time -
Отметка времени (секунды с начала эпохи) вызова функции.
-
frame -
Глубина фрейма стека вызываемой функции.
Кроме того, первый выведенный JSON-документ содержит ключ
versionдля текущей основной и дополнительной версииФормат трассировки в JSON:
{ "version": { "major": 1, "minor": 1 } }Члены:
-
version -
Указывает версию формата JSON. Версия имеет основные и дополнительные компоненты, следуя соглашениям семантической версии.
-
-
-
--trace-source=<file> -
Включить трассировочный режим в CMake, но выводить только строки из указанного файла.
Разрешены несколько параметров.
-
--trace-redirect=<file> -
Включить трассировочный режим в CMake и перенаправить вывод трассировки в файл вместо stderr.
-
--warn-uninitialized -
Предупреждение об инициализированных значениях.
Выводить предупреждение, когда используется неинициализированная переменная.
-
--warn-unused-vars -
Не выполняет никаких действий. В версиях CMake 3.2 и ниже это включало предупреждения об отсутствии использования переменных. В версиях CMake 3.3—3.18 параметр был неисправен. В CMake 3.19 и выше параметр был удален.
-
--no-warn-unused-cli -
Не выдавать предупреждений о параметрах командной строки.
Не находить переменные, которые объявлены в командной строке, но не используются.
-
--check-system-vars -
Поиск проблем с использованием переменных в системных файлах.
Обычно, неиспользуемые и неинициализированные переменные ищутся только в
CMAKE_SOURCE_DIRиCMAKE_BINARY_DIR. Этот флаг сообщает CMake о предупреждениях и в других файлах. -
--profiling-output=<path> -
Используется совместно с
--profiling-formatдля вывода в заданный путь. -
--profiling-format=<file> -
Включает вывод данных профилирования скрипта CMake в указанном формате.
Это может помочь в анализе производительности исполняемых скриптов CMake. Для обработки вывода в удобочитаемый формат следует использовать сторонние приложения.
В настоящее время поддерживаются значения:
google-traceВывод в формате трассировки Google, который можно проанализировать в вкладке «about:tracing» браузера Google Chrome или с помощью плагина для инструментов, таких как Trace Compass. -
--preset <preset>, --preset=<preset> -
Считывает
presetиз<path-to-source>/CMakePresets.jsonи<path-to-source>/CMakeUserPresets.json. Предварительные настройки могут указывать генератор и каталог построения, а также список переменных и других аргументов для передачи в CMake. Текущий рабочий каталог должен содержать файлы предварительных настроек CMake.CMake GUIтакже может распознавать файлыCMakePresets.jsonиCMakeUserPresets.json. Подробную информацию об этих файлах см. вcmake-presets(7).Предварительные настройки считываются до всех остальных параметров командной строки. Параметры, указанные в предварительных настройках (переменные, генератор и т. д.), можно переопределить, вручную указав их в командной строке. Например, если предварительная настройка задаёт переменную
MYVARсо значением1, а пользователь задаёт ей значение2с аргументом-D, то значение2будет использоваться. -
--list-presets, --list-presets=<[configure | build | test | all]> -
Отображает доступные предварительные настройки. Если не указан ни один параметр, будут отображены только конфигурационные предварительные настройки. Текущий рабочий каталог должен содержать файлы предварительных настроек CMake.
Сборка проекта
CMake предоставляет командную строку для сборки уже сгенерированного проекта бинарного дерева:
cmake --build [<dir> | --preset <preset>] [<options>] [-- <build-tool-options>]
Это абстрагирует интерфейс командной строки утилиты native build tool с следующими параметрами:
-
--build <dir> -
Директория бинарного дерева проекта для сборки. Это обязательно (если не указана предварительная настройка) и должно быть первым.
-
--preset <preset>, --preset=<preset> -
Использовать предварительную настройку сборки для указания параметров сборки. Директория бинарного дерева проекта определяется по ключу
configurePreset. Текущий рабочий каталог должен содержать файлы предварительных настроек CMake. См.presetдля получения дополнительной информации. -
--list-presets -
Отображает доступные предварительные настройки сборки. Текущий рабочий каталог должен содержать файлы предварительных настроек CMake.
-
--parallel [<jobs>], -j [<jobs>] -
Максимальное количество одновременных процессов для использования при сборке. Если
<jobs>опущено, используется значение по умолчанию для утилиты native build tool.Переменная среды
CMAKE_BUILD_PARALLEL_LEVEL, если она задана, определяет уровень параллельности по умолчанию, когда этот параметр не указан.Некоторые утилиты native build tool всегда производят сборку параллельно. Использование значения
<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>]
Это может быть использовано после сборки проекта для выполнения установки без использования сгенерированной системы сборки или утилиты native build tool. Параметры:
-
--install <dir> -
Директория двоичных файлов проекта для установки. Это обязательно и должно быть указано первым.
-
--config <cfg> -
Для генераторов с несколькими конфигурациями выберите конфигурацию
<cfg>. -
--component <comp> -
Установка покомпонентно. Устанавливается только компонент
<comp>. -
--default-directory-permissions <permissions> -
Права доступа для установки по умолчанию. Права в формате
<u=rwx,g=rx,o=rx>. -
--prefix <prefix> -
Переопределить префикс установки,
CMAKE_INSTALL_PREFIX. -
--strip -
Удалить перед установкой.
-
-v, --verbose -
Включить подробный вывод.
Этот параметр можно опустить, если переменная среды
VERBOSEустановлена.
Запустите cmake --install без параметров для получения краткой справки.
Открыть проект
cmake --open <dir>
Откройте сгенерированный проект в соответствующем приложении. Это поддерживается только некоторыми генераторами.
Запуск скрипта
cmake [{-D <var>=<value>}...] -P <cmake-script-file> [-- <unparsed-options>...]
Обработайте заданный файл CMake как скрипт, написанный на языке CMake. Шаги конфигурации и генерации не выполняются, и кэш не изменяется. Если переменные определяются с помощью -D, это должно быть выполнено до аргумента -P.
Любые параметры после -- не анализируются CMake, но все равно включаются в набор переменных CMAKE_ARGV<n>, передаваемых скрипту (включая и сам --).
Запустить утилиту командной строки
CMake предоставляет встроенные инструменты командной строки через подпись
cmake -E <command> [<options>]
Запустите cmake -E или cmake -E help для получения сводки команд. Доступные команды:
-
capabilities -
Отчёт о возможностях cmake в формате JSON. Выходной результат — JSON-объект со следующими ключами:
-
version -
JSON-объект с информацией о версии. Ключи:
-
string -
Полная строка версии, отображаемая cmake
--version. -
major -
Главный номер версии в целочисленной форме.
-
minor -
Дополнительный номер версии в целочисленной форме.
-
patch -
Номер патча в целочисленной форме.
-
suffix -
Строка суффикса версии cmake.
-
isDirty -
Логическое значение, установленное, если сборка cmake выполняется из грязного дерева.
-
-
generators -
Список доступных генераторов. Каждый генератор — JSON-объект со следующими ключами:
-
name -
Строка, содержащая имя генератора.
-
toolsetSupport -
true, если генератор поддерживает наборы инструментов, иfalseв противном случае. -
platformSupport -
true, если генератор поддерживает платформы, иfalseв противном случае. -
supportedPlatforms -
Введено в версии 3.21.
Необязательный член, который может присутствовать, когда генератор поддерживает указание платформы через
CMAKE_GENERATOR_PLATFORM(-A ...). Значение — список поддерживаемых платформ. -
extraGenerators -
Список строк со всеми дополнительными генераторами, совместимыми с генератором.
-
-
fileApi -
Необязательный член, присутствующий, когда доступен
cmake-file-api(7). Значение — JSON-объект с одним членом:-
requests -
JSON-массив, содержащий ноль или более поддерживаемых запросов к файловой API. Каждый запрос — JSON-объект с членами:
-
kind -
Указывает один из поддерживаемых типов объектов.
-
version -
JSON-массив, элементы которого представляют собой JSON-объекты, содержащие члены
majorиminor, задающие целочисленные компоненты версии.
-
-
-
serverMode -
true, если cmake поддерживает серверный режим, иfalseв противном случае. Всегда ложь с CMake 3.20.
-
-
cat <files>... -
Объединение файлов и вывод в стандартный поток.
-
chdir <dir> <cmd> [<arg>...] -
Изменение текущей рабочей директории и выполнение команды.
-
compare_files [--ignore-eol] <file1> <file2> -
Проверка, совпадает ли
<file1>с<file2>. Если файлы совпадают, возвращается0, в противном случае —1. В случае недопустимых аргументов возвращается 2. Опция--ignore-eolподразумевает сравнение по строкам и игнорирует различия LF/CRLF. -
copy <file>... <destination> -
Копирование файлов в
<destination>(файл или директория). Если указано несколько файлов,<destination>должно быть директорией и она должна существовать. Поддержка шаблонов не поддерживается.copyследует за символьными ссылками. Это означает, что он не копирует символьную ссылку, а только файлы или директории, на которые она указывает. -
copy_directory <dir>... <destination> -
Копирование содержимого директорий
<dir>...в директорию<destination>. Если директория<destination>не существует, она будет создана.copy_directoryследует за символьными ссылками. -
copy_if_different <file>... <destination> -
Копирование файлов в
<destination>(файл или директория), если они изменены. Если указано несколько файлов,<destination>должно быть директорией и она должна существовать.copy_if_differentследует за символьными ссылками. -
create_symlink <old> <new> -
Создание символической ссылки
<new>с именем<old>.Примечание
Путь, где будет создана символическая ссылка
<new>, должен существовать предварительно. -
create_hardlink <old> <new> -
Создание жёсткой ссылки
<new>с именем<old>.Примечание
Путь, где будет создана жёсткая ссылка
<new>, должен существовать предварительно. Файл<old>должен существовать предварительно. -
echo [<string>...] -
Отображение аргументов как текста.
-
echo_append [<string>...] -
Отображение аргументов как текста, но без новой строки.
-
env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]... -
Выполнение команды в изменённой среде.
-
environment -
Отображение текущих переменных среды.
-
false -
Ничего не делать, с кодом выхода 1.
-
make_directory <dir>... -
Создание директорий
<dir>. При необходимости создавать родительские директории тоже. Если директория уже существует, она будет проигнорирована. -
md5sum <file>... -
Создание контрольной суммы MD5 файлов в формате, совместимом с
md5sum:351abe79cd3800b38cdfb25d45015a15 file1.txt 052f86c15bbde68af55c7f7b340ab639 file2.txt
-
sha1sum <file>... -
Создание контрольной суммы SHA1 файлов в формате, совместимом с
sha1sum:4bb7932a29e6f73c97bb9272f2bdc393122f86e0 file1.txt 1df4c8f318665f9a5f2ed38f55adadb7ef9f559c file2.txt
-
sha224sum <file>... -
Создание контрольной суммы SHA224 файлов в формате, совместимом с
sha224sum:b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930 file1.txt 6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24 file2.txt
-
sha256sum <file>... -
Создание контрольной суммы SHA256 файлов в формате, совместимом с
sha256sum:76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc file1.txt 15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea file2.txt
-
sha384sum <file>... -
Создание контрольной суммы SHA384 файлов в формате, совместимом с
sha384sum:acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434 file1.txt 668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d file2.txt
-
sha512sum <file>... -
Создание контрольной суммы SHA512 файлов в формате, совместимом с
sha512sum:2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89 file1.txt 7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d file2.txt
-
remove [-f] <file>... -
Устарело с версии 3.17.
Удаление файла(ов). Ожидалось, что если какой-либо из указанных файлов не существует, команда вернёт ненулевой код выхода, но никаких сообщений не будет выведено. Опция
-fизменяет поведение, возвращая нулевой код выхода (т.е. успех) в таких ситуациях.removeне следует за символьными ссылками. Это означает, что он удаляет только символьную ссылку, а не файлы, на которые она указывает.Реализация была ошибочной и всегда возвращала 0. Исправить её невозможно без нарушения обратной совместимости. Используйте
rmвместо этого. -
remove_directory <dir>... -
Устарело с версии 3.17.
Удаление директории(й)
<dir>и их содержимого. Если директория не существует, она будет проигнорирована. Если<dir>является символической ссылкой на директорию, будет удалена только символьную ссылка. Используйтеrmвместо этого. -
rename <oldname> <newname> -
Переименование файла или директории (на одном томе). Если файл с именем
<newname>уже существует, он будет заменён незаметно. -
rm [-rRf] <file> <dir>... -
Удаление файлов
<file>или директорийdir. Используйте-rили-Rдля рекурсивного удаления директорий и их содержимого. Если какой-либо из перечисленных файлов/директорий не существует, команда возвращает ненулевой код выхода, но никаких сообщений не будет выведено. Опция-fизменяет поведение, возвращая нулевой код выхода (т.е. успех) в таких ситуациях вместо этого. -
server -
Запуск режима
cmake-server(7). -
sleep <number>... -
Ожидание заданного количества секунд.
-
tar [cxt][vf][zjJ] file.tar [<options>] [--] [<pathname>...] -
Создание или извлечение архива tar или zip. Опции:
-
c -
Создание нового архива, содержащего указанные файлы. Если используется, аргумент
<pathname>...обязателен. -
x -
Извлечение из архива на диск. Аргумент
<pathname>...может быть использован для извлечения только выбранных файлов или директорий. При извлечении выбранных файлов или директорий, необходимо указать их точные имена, включая путь, как показано в списке (-t). -
t -
Вывод содержимого архива. Аргумент
<pathname>...может быть использован для вывода только выбранных файлов или директорий. -
v -
Вывод подробной информации.
-
z -
Сжатие создаваемого архива с gzip.
-
j -
Сжатие создаваемого архива с bzip2.
-
J -
Сжатие создаваемого архива с XZ.
-
--zstd -
Сжатие создаваемого архива с Zstandard.
-
--files-from=<file> -
Чтение имён файлов из указанного файла, по одному на строку. Пустые строки игнорируются. Строки не могут начинаться с
-за исключением--add-file=<name>для добавления файлов, имена которых начинаются с-. -
--format=<format> -
Указание формата создаваемого архива. Поддерживаемые форматы:
7zip,gnutar,pax,paxr(ограниченный pax, по умолчанию) иzip. -
--mtime=<date> -
Указание времени изменения, записываемого в записи tarball.
-
-- -
Прекратить интерпретацию опций и рассматривать все оставшиеся аргументы как имена файлов, даже если они начинаются с
-.
-
-
time <command> [<args>...] -
Запуск команды и отображение времени выполнения.
-
touch <file>... -
Создаёт
<file>, если файл не существует. Если<file>существует, меняет время доступа и изменения<file>. -
touch_nocreate <file>...
-
Нажмите на файл, если он существует, но не создавайте его. Если файл не существует, он будет проигнорирован.
-
true -
Ничего не делать, с кодом выхода 0.
Инструменты командной строки, специфичные для Windows
Следующие cmake -E команды доступны только в Windows:
-
delete_regv <key> -
Удалить значение из реестра Windows.
-
env_vs8_wince <sdkname> -
Отображает пакетный файл, который устанавливает среду для предоставленной установленной в VS2005 Windows CE SDK.
-
env_vs9_wince <sdkname> -
Отображает пакетный файл, который устанавливает среду для предоставленной установленной в VS2008 Windows CE SDK.
-
write_regv <key> <value> -
Записать значение в реестр Windows.
Запуск инструмента 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 <source-dir> --list-presets
См. также
Следующие ресурсы доступны для получения справки по CMake:
- Главная страница
-
Основная стартовая точка для изучения CMake.
- Онлайн-документация и ресурсы сообщества
-
https://cmake.org/documentation
Ссылки на доступную документацию и ресурсы сообщества можно найти на этой веб-странице.
- Форум Discourse
-
Форум Discourse предоставляет площадку для обсуждения и вопросов о CMake.
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/manual/cmake.1.html