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 — это кроссплатформенная система генерации билдов. Проекты указывают свой процесс сборки с помощью независимых от платформы файлов 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-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, не в ошибки.
-
-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_compile. Однако это может изменить результаты try-compile, так как старый мусор из предыдущего 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>...]
Это абстрагирует интерфейс командной строки инструмента сборки с помощью следующих опций:
-
--build <dir> - Директория двоичного дерева проекта, подлежащая построению. Это обязательно и должно быть указано в первую очередь.
-
--target <tgt> - Сборка
<tgt>вместо целевых задач по умолчанию. Может быть указана только один раз. -
--config <cfg> - Для инструментов с несколькими конфигурациями, выберите конфигурацию
<cfg>. -
--clean-first - Сначала выполнить целевую задачу
clean, затем выполнить сборку. (Для очистки, используйте--target clean.) -
--use-stderr - Игнорируется. Поведение по умолчанию в CMake >= 3.0.
-
-- - Передать оставшиеся опции инструменту.
Запустите 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>.
Примечание
Путь, к которому будет создана <new> символическая ссылка, должен существовать заранее.
Инструменты командной строки, специфичные для Windows
Следующие cmake -E команды доступны только в Windows:
-
delete_regv <key> - Удалить значение из реестра Windows.
-
env_vs8_wince <sdkname> - Отображает пакетный файл, устанавливающий среду для установленного Windows CE SDK в VS2005.
-
env_vs9_wince <sdkname> - Отображает пакетный файл, устанавливающий среду для установленного Windows CE SDK в 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
Wiki содержит ответы на часто задаваемые вопросы.
- Онлайн документация
-
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.9/manual/cmake.1.html