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-name> -
Указание имени набора инструментов, если это поддерживается генератором.
Некоторые генераторы CMake поддерживают имя набора инструментов, которое должно быть передано в систему сборки, чтобы выбрать компилятор. Это поддерживается только определёнными генераторами:
Visual Studio >= 10 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_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 -
Предупреждение об unused переменных.
Найти переменные, которые объявлены или заданы, но не используются.
-
--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> - Указание времени изменения, записанного в записях tarball.
-
--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.7/manual/cmake.1.html