Обзор
CMake генерирует скрипты сборки, соответствующие выбранному инструменту сборки (например, Make, Ninja), на основе файла CMakeLists.txt, который определяет процесс сборки исходного кода. Это необходимо для стандартизации и автоматизации процесса сборки сложных проектов.
Основные возможности
- Кроссплатформенная поддержка (Linux, Windows, macOS и т. д.)
- Генерация различных систем сборки (Makefiles, Visual Studio, Xcode и т. д.)
- Простота управления модульными проектами
- Поддержка тестирования и упаковки (CTest, CPack)
Основные опции
Основные опции, часто используемые при выполнении команды CMake.
Базовая настройка
Генераторы систем сборки
Сборка и установка
Информация
Сгенерированная команда:
Комбинируйте команды.
Описание:
`cmake` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Различные сценарии настройки и сборки проектов с использованием CMake.
Базовая настройка сборки и создание Makefile
mkdir build
cd build
cmake ..
make
Создает Makefile в подкаталоге 'build' на основе исходников в текущем каталоге.
Явное указание каталогов исходников и сборки
cmake -S /path/to/my_project_source -B /path/to/my_project_build
Создает файлы сборки, явно указывая каталоги исходников и сборки.
Использование генератора Ninja и сборка в режиме Release
cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
Создает файлы сборки, используя систему сборки Ninja и устанавливая тип сборки в Release.
Выполнение сборки через CMake
cmake --build build
Выполняет сборку через команду CMake, а не напрямую вызывая сгенерированную систему сборки (например, Makefile).
Установка собранного проекта
cmake --install build
Устанавливает собранный проект в стандартный путь системы (например, /usr/local).
Установка
CMake не входит в стандартную поставку большинства дистрибутивов Linux, поэтому его необходимо устанавливать через менеджер пакетов.
Debian/Ubuntu
sudo apt update
sudo apt install cmake
Устанавливает CMake с помощью менеджера пакетов APT.
Fedora/RHEL/CentOS
sudo dnf install cmake
Устанавливает CMake с помощью менеджера пакетов DNF или YUM.
Arch Linux
sudo pacman -S cmake
Устанавливает CMake с помощью менеджера пакетов Pacman.
Советы и рекомендации
Советы и рекомендации по эффективному использованию CMake.
Сборка вне каталога исходников (Out-of-Source Build)
Настоятельно рекомендуется всегда использовать сборку вне каталога исходников, разделяя каталог исходного кода и каталог сборки. Это позволяет сохранить каталог исходников чистым и легко переключаться между различными конфигурациями сборки.
- Предотвращает загрязнение каталога исходников
- Облегчает одновременное управление различными конфигурациями сборки (Debug/Release)
Файл CMakeLists.txt
Ядром CMake является файл CMakeLists.txt, который определяет правила сборки проекта. Важно понимать синтаксис и структуру этого файла.
- Располагается в корневом каталоге проекта
- Может также присутствовать в подкаталогах (включается командой add_subdirectory)
Использование GUI-инструментов
Для сложных проектов CMake можно использовать такие инструменты, как `ccmake` (основанный на терминале) или `cmake-gui` (графический), для визуальной настройки и управления переменными кэша.
- `ccmake`: Интерактивная настройка переменных кэша в терминале
- `cmake-gui`: Удобная настройка с помощью графического интерфейса