Spec-Zone.ru › CMake 3.7

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 доступны следующие ресурсы:

Главная страница

https://cmake.org

Основная точка входа для изучения 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API