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 поддерживают имя набора инструментов, которое нужно предоставить родной системе сборки для выбора компилятора. Это поддерживается только для определённых генераторов:
Visual Studio >= 10 Xcode >= 3.0
См. документацию родной системы сборки для допустимых имён наборов инструментов.
-
-A <platform-name> -
Указать имя платформы, если оно поддерживается генератором.
Некоторые генераторы CMake поддерживают имя платформы, которое нужно предоставить родной системе сборки для выбора компилятора или SDK. Это поддерживается только для определённых генераторов:
Visual Studio >= 8
См. документацию родной системы сборки для допустимых имён платформ.
-
-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> -
Сборка бинарного дерева проекта, сгенерированного CMake.
Это абстрагирует интерфейс командной строки родного инструмента сборки с помощью следующих опций:
<dir> = Project binary directory to be built. --target <tgt> = Build <tgt> instead of default targets. --config <cfg> = For multi-configuration tools, choose <cfg>. --clean-first = Build target 'clean' first, then build. (To clean only, use --target 'clean'.) --use-stderr = Ignored. Behavior is default in CMake >= 3.0. -- = Pass remaining options to the native tool.Запуск cmake –build без опций для быстрой справки.
-
-N -
Только режим просмотра.
Только загрузить кэш. Не выполнять фактически шаги конфигурации и генерации.
-
-P <file> -
Режим обработки скрипта.
Обработать заданный файл cmake как скрипт, написанный на языке CMake. Шаги конфигурации или генерации не выполняются, и кэш не изменяется. Если переменные определены с помощью -D, это необходимо сделать до аргумента -P.
-
--find-package -
Запуск в режиме pkg-config.
Поиск пакета с помощью find_package() и вывод полученных флагов в стандартный вывод. Это можно использовать для использования cmake вместо pkg-config для поиска установленных библиотек в проектах на основе Makefile или в проектах на основе autoconf (через share/aclocal/cmake.m4).
-
--graphviz=[file] -
Генерировать graphviz зависимостей, см. CMakeGraphVizOptions.cmake для получения более подробной информации.
Сгенерировать файл ввода graphviz, который будет содержать все зависимости библиотек и исполняемых файлов в проекте. Подробности см. в документации к CMakeGraphVizOptions.cmake.
-
--system-information [file] -
Вывести информацию об этой системе.
Вывести широкий спектр информации о текущей системе. Если запуск идёт из верхней части двоичного дерева проекта CMake, он будет выводить дополнительную информацию, такую как кэш, файлы журналов и т. д.
-
--debug-trycompile -
Не удалять дерево сборки try_compile. Полезно только при одном вызове try_compile.
Не удалять файлы и каталоги, созданные для вызовов try_compile. Это полезно для отладки неудачных try_compile. Однако это может изменить результаты try-сборок, так как старый мусор из предыдущей try-сборки может привести к тому, что другой тест либо пройдёт, либо потерпит неудачу неправильно. Лучше использовать эту опцию для одного try-compile за раз и только для отладки.
-
--debug-output -
Переключить cmake в режим отладки.
Выводить дополнительную информацию во время запуска cmake, например, трассировки стека с вызовами message(send_error).
-
--trace -
Переключить cmake в режим трассировки.
Выводить трассировку всех вызовов и из какого места.
-
--trace-expand -
Переключить cmake в режим трассировки.
Как
--trace, но с расширенными переменными. -
--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 -E <command> [<options>...]
Запустите cmake -E или cmake -E help для получения сводки команд. Доступные команды:
-
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>... - Вычислить md5sum файлов.
-
remove [-f] <file>... - Удалить файл(ы). Используйте
-f, чтобы принудительно удалить. Если файл не существует, он будет проигнорирован. -
remove_directory <dir> - Удалить директорию и её содержимое. Если директория не существует, она будет проигнорирована.
-
rename <oldname> <newname> - Переименовать файл или директорию (в пределах одного тома).
-
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> - Отобразить пакетный файл, который устанавливает среду для установленного Windows CE SDK в VS2005.
-
env_vs9_wince <sdkname> - Отобразить пакетный файл, который устанавливает среду для установленного Windows CE SDK в VS2008.
-
write_regv <key> <value> - Записать значение в реестр Windows.
См. также
Для получения помощи при использовании 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.5/manual/cmake.1.html