cmake(1)
Синопсис
cmake [<options>] (<path-to-source> | <path-to-existing-build>) cmake [(-D <var>=<value>)...] -P <cmake-script-file> cmake --build <dir> [<options>...] [-- <build-tool-options>...] cmake -E <command> [<options>...] cmake --find-package <options>...
Описание
Исполняемый файл «cmake» — это командная строка CMake. Она может использоваться для настройки проектов в скриптах. Настройки конфигурации проекта могут быть указаны в командной строке с помощью опции -D.
CMake — это кроссплатформенная система генерации систем сборки. Проекты указывают свой процесс сборки с помощью независимых от платформы файлов CMakeLists.txt, включённых в каждый каталог дерева исходного кода. Пользователи собирают проект, используя CMake для генерации системы сборки для системного инструмента на их платформе.
Опции
-
-C <initial-cache> -
Предварительно загрузить скрипт для заполнения кэша.
Когда cmake впервые запускается в пустом дереве сборки, он создаёт файл CMakeCache.txt и заполняет его настраиваемыми параметрами проекта. Эта опция может использоваться для указания файла, из которого должны загружаться записи кэша перед первым проходом по файлам cmake проекта. Загруженные записи имеют приоритет над значениями по умолчанию проекта. Указанный файл должен быть скриптом CMake, содержащим команды SET, которые используют опцию CACHE, а не файлом формата кэша.
-
-D <var>:<type>=<value>, -D <var>=<value> -
Создать запись кэша cmake.
Когда cmake впервые запускается в пустом дереве сборки, он создаёт файл CMakeCache.txt и заполняет его настраиваемыми параметрами проекта. Эта опция может использоваться для указания параметра, который имеет приоритет над значением по умолчанию проекта. Опцию можно повторять для любого количества записей кэша.
Если указана часть
:<type>, она должна быть одним из типов, указанных в документации командыset()для еёCACHEподписи. Если часть:<type>опущена, запись будет создана без типа, если она не существует с уже имеющимся типом. Если команда в проекте устанавливает тип наPATHилиFILEPATH, то<value>будет преобразовано в абсолютный путь.Эту опцию также можно указать как один аргумент:
-D<var>:<type>=<value>или-D<var>=<value>. -
-U <globbing_expr> -
Удалить соответствующие записи из кэша CMake.
Эта опция может использоваться для удаления одной или нескольких переменных из файла CMakeCache.txt, поддерживаются выражения с подстановкой * и ?. Опцию можно повторять для любого количества записей кэша.
Используйте с осторожностью, вы можете сделать ваш CMakeCache.txt неработоспособным.
-
-G <generator-name> -
Указать генератор системы сборки.
CMake может поддерживать несколько систем сборки на определённых платформах. Генератор отвечает за генерацию конкретной системы сборки. Возможные имена генераторов указаны в руководстве
cmake-generators(7). -
-T <toolset-name> -
Указать имя набора инструментов, если это поддерживается генератором.
Некоторые генераторы CMake поддерживают имя набора инструментов, которое должно быть передано системной системе сборки, чтобы выбрать компилятор. См. переменную
CMAKE_GENERATOR_TOOLSET. Это поддерживается только определёнными генераторами:- Генераторы Visual Studio для VS 2010 и выше
- Генератор
Xcodeдля Xcode 3.0 и выше
См. документацию по системной системе сборки для допустимых имён наборов инструментов.
-
-A <platform-name> -
Указать имя платформы, если это поддерживается генератором.
Некоторые генераторы CMake поддерживают имя платформы, которое должно быть передано системной системе сборки, чтобы выбрать компилятор или SDK. См. переменную
CMAKE_GENERATOR_PLATFORM. Это поддерживается только определёнными генераторами:- Для Генераторов Visual Studio с VS 2005 и выше это определяет целевую архитектуру.
См. документацию по системной системе сборки для допустимых имён платформ.
-
-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, не ошибками.
-
-E <command> [<options>...] - См. Режим командной строки.
-
-L[A][H] -
Список нерасширенных переменных кэша.
Список переменных кэша выполнит CMake и выведет все переменные из кэша CMake, которые не помечены как INTERNAL или ADVANCED. Это эффективно отобразит текущие настройки CMake, которые можно изменить с помощью опции -D. Изменение некоторых переменных может привести к созданию других переменных. Если указан A, то отобразятся также расширенные переменные. Если указан H, то отобразится также справка по каждой переменной.
-
--build <dir> - См. Режим инструмента сборки.
-
-N -
Только режим просмотра.
Только загрузить кэш. Не выполнять на самом деле этапы настройки и генерации.
-
-P <file> -
Режим обработки скриптов.
Обработать указанный файл cmake как скрипт, написанный на языке CMake. Не выполняется этап настройки или генерации, и кэш не изменяется. Если переменные определяются с помощью -D, это должно быть сделано перед аргументом -P.
-
--find-package - См. Режим инструмента поиска пакетов.
-
--graphviz=[file] -
Сгенерировать graphviz зависимостей, см. CMakeGraphVizOptions.cmake для получения более подробной информации.
Сгенерировать файл graphviz, который будет содержать все зависимости библиотек и исполняемых файлов в проекте. См. документацию для CMakeGraphVizOptions.cmake для получения более подробной информации.
-
--system-information [file] -
Вывести информацию об этой системе.
Вывести широкий спектр информации о текущей системе. Если запуск производится из верхней части бинарного дерева проекта CMake, он выведет дополнительную информацию, такую как кэш, файлы журналов и т. д.
-
--debug-trycompile -
Не удалять дерево сборки try_compile. Полезно только при одном try_compile за раз.
Не удалять файлы и каталоги, созданные для вызовов try_compile. Это полезно при отладке неудачных try_compiles. Однако это может изменить результаты try-compiles, так как старый мусор от предыдущего try-compile может привести к тому, что другой тест будет либо проходить, либо проваливаться неправильно. Эта опция лучше всего используется для одного try-compile за раз и только при отладке.
-
--debug-output -
Включить cmake в отладочный режим.
Выводить дополнительную информацию во время работы cmake, например, трассировки стека с вызовами message(send_error).
-
--trace -
Включить режим трассировки в cmake.
Выводить трассировку всех сделанных вызовов и откуда.
-
--trace-expand -
Включить режим трассировки в cmake.
Как
--trace, но с расширенными переменными. -
--trace-source=<file> -
Включить режим трассировки в cmake, но выводить только строки указанного файла.
Разрешается несколько опций.
-
--warn-uninitialized -
Предупреждать об неопределённых значениях.
Выводить предупреждение при использовании неопределённой переменной.
-
--warn-unused-vars -
Предупреждать об неиспользуемых переменных.
Находить переменные, которые объявлены или установлены, но не используются.
-
--no-warn-unused-cli -
Не выводить предупреждения о параметрах командной строки.
Не находить переменные, которые объявлены в командной строке, но не используются.
-
--check-system-vars -
Находить проблемы с использованием переменных в системных файлах.
Обычно неиспользуемые и неопределённые переменные ищутся только в CMAKE_SOURCE_DIR и CMAKE_BINARY_DIR. Этот флаг сообщает CMake о том, чтобы предупреждать и об других файлах.
-
--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 предоставляет подпись командной строки для построения уже сгенерированного бинарного дерева проекта:
cmake --build <dir> [<options>...] [-- <build-tool-options>...]
Это абстрагирует интерфейс командной строки инструмента native построения со следующими параметрами:
-
--build <dir> - Директория бинарного дерева проекта, подлежащая построению. Это обязательно и должно быть первым.
-
--target <tgt> - Построить
<tgt>вместо целевых задач по умолчанию. Может быть указано только один раз. -
--config <cfg> - Для инструментов с несколькими конфигурациями выберите конфигурацию
<cfg>. -
--clean-first - Построить целевую задачу
cleanпервой, а затем построить. (Для очистки только используйте--target clean.) -
--use-stderr - Игнорируется. Поведение по умолчанию в CMake >= 3.0.
-
-- - Передать оставшиеся параметры инструменту native.
Запустите cmake --build без параметров для получения краткой справки.
Режим инструмента командной строки
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 - Список строк со всеми дополнительными генераторами, совместимыми с генератором.
-
-
serverMode -
trueесли cmake поддерживает режим сервера, иfalseв противном случае.
-
-
chdir <dir> <cmd> [<arg>...] - Изменить текущую рабочую директорию и выполнить команду.
-
compare_files <file1> <file2> - Проверить, является ли
<file1>таким же, как<file2>. Если файлы одинаковы, возвращается 0, в противном случае — 1. -
copy <file>... <destination> - Копировать файлы в
<destination>(файл или директория). Если указано несколько файлов, то<destination>должно быть директорией и должно существовать. -
copy_directory <dir>... <destination> - Копировать директории в директорию
<destination>. Если директория<destination>не существует, она будет создана. -
copy_if_different <file>... <destination> - Копировать файлы в
<destination>(файл или директория), если они изменились. Если указано несколько файлов, то<destination>должно быть директорией и должно существовать. -
echo [<string>...] - Отображает аргументы как текст.
-
echo_append [<string>...] - Отображает аргументы как текст, но без новой строки.
-
env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]... - Выполнить команду в изменённой среде.
-
environment - Отобразить текущие переменные среды.
-
make_directory <dir>... - Создать директории
<dir>. При необходимости создать также родительские директории. Если директория уже существует, она будет проигнорирована. -
md5sum <file>... -
Создать MD5 контрольную сумму файлов в формате, совместимом с
md5sum:351abe79cd3800b38cdfb25d45015a15 file1.txt 052f86c15bbde68af55c7f7b340ab639 file2.txt
-
remove [-f] <file>... - Удалить файл(ы). Если любой из перечисленных файлов уже не существует, команда возвращает ненулевой код выхода, но сообщение не регистрируется. Опция
-fизменяет поведение, чтобы возвращать нулевой код выхода (т.е. успех) в таких ситуациях. -
remove_directory <dir> - Удалить директорию и её содержимое. Если директория не существует, она будет проигнорирована.
-
rename <oldname> <newname> - Переименовать файл или директорию (в пределах одного тома).
-
server - Запустить режим
cmake-server(7). -
sleep <number>... - Подождать заданное количество секунд.
-
tar [cxt][vf][zjJ] file.tar [<options>...] [--] [<file>...] -
Создать или извлечь архив tar или zip. Опции:
-
-- - Остановить интерпретацию опций и рассматривать все оставшиеся аргументы как имена файлов, даже если они начинаются с
-. -
--files-from=<file> - Читать имена файлов из указанного файла, по одному на строке. Пустые строки игнорируются. Строки не должны начинаться с
-за исключением--add-file=<name>для добавления файлов, имена которых начинаются с-. -
--mtime=<date> - Указать время изменения, записанное в записях в архиве tar.
-
--format=<format> - Указать формат создаваемого архива. Поддерживаются форматы:
7zip,gnutar,pax,paxr(ограниченный pax, по умолчанию) иzip.
-
-
time <command> [<args>...] - Выполнить команду и вернуть время выполнения.
-
touch <file> - Создать файл.
-
touch_nocreate <file> - Создать файл, если он существует, но не создавать его, если он не существует. Если файл не существует, он будет проигнорирован.
Инструменты командной строки, специфичные для UNIX
Следующие cmake -E команды доступны только в UNIX:
-
create_symlink <old> <new> - Создать символическую ссылку
<new>с именем<old>.
Инструменты командной строки, специфичные для 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.
Режим инструментария поиска пакетов
CMake предоставляет помощник для проектов на основе Makefile со следующей подписью:
cmake --find-package <options>...
Это работает в режиме, похожем на pkg-config.
Искать пакет с помощью find_package() и выводить полученные флаги в стандартный вывод. Это можно использовать для поиска установленных библиотек с помощью cmake вместо pkg-config в простых проектах на основе Makefile или в проектах на основе autoconf (через share/aclocal/cmake.m4).
Примечание
Этот режим не хорошо поддерживается из-за некоторых технических ограничений. Он сохраняется для совместимости, но не должен использоваться в новых проектах.
См. также
Для получения помощи в использовании CMake доступны следующие ресурсы:
- Главная страница
-
Основная отправная точка для изучения CMake.
- Часто задаваемые вопросы
-
https://cmake.org/Wiki/CMake_FAQ
На Вики предоставлены ответы на часто задаваемые вопросы.
- Онлайн-документация
-
https://cmake.org/documentation
Ссылки на доступную документацию можно найти на этой странице.
- Список рассылки
-
https://cmake.org/mailing-lists
Для получения помощи и обсуждения использования cmake доступен список рассылки по адресу cmake@cmake.org. Список рассылки — только для публикации членами, но на странице CMake можно подписаться. Сначала ознакомьтесь с полной документацией по адресу https://cmake.org перед отправкой вопросов в список рассылки.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.8/manual/cmake.1.html