CMake для проектов на C++ и Qt: структура CMakeLists.txt, подключение библиотек, сборка под разные платформы, типичные ошибки конфигурации. Примеры от минимального проекта до многомодульной сборки с тестами.
Code coverage для Qt-проекта: gcov, lcov и интерпретация отчётов
Введение Покрытие кода тестами (code coverage) показывает, какая доля строк/веток кода была выполнена хотя бы раз во время прогона тестового набора. Это не метрика качества тестов само по…
Интеграция Boost в Qt-проект с использованием CMake
Архитектурная Ключевой принцип:никаких глобальных include_directories, только target-based linking. Структура проекта Пример использования Boost внутри Qt Будем использовать: FileService.h FileService.cpp MainWindow.h MainWindow.cpp main.cpp CMakeLists.txt (Qt6 + Boost) Что происходит…
CMake и библиотека Boost: интеграция в C++-проект
Введение Boost — одна из наиболее масштабных и зрелых библиотек для C++, предоставляющая компоненты от метапрограммирования и многопоточности до сетевого взаимодействия и сериализации. Многие части Boost легли в…
Настройка CMake для проектов с CUDA
Как CMake работает с CUDA С версии 3.18 CMake имеет нативную поддержку CUDA: Минимальный CUDA-проект Compute Capability Или: Статическая CUDA-библиотека CUDA + Qt Qt UI + GPU backend:…
Архитектура Qt-приложений + CMake
Цели архитектуры Qt-проекта Хороший Qt-проект: CMake здесь — не просто билд-система, а средство описания архитектуры. Слоистая структура (Layered Architecture) Типовая схема: Каждый слой — отдельная библиотека. Модульность через…
Проект Qt с CMake
Настройка окружения Перед началом убедитесь, что: Структура проекта Содержимое main.cpp: CMakeLists.txt для Qt6 (современный подход) CMakeLists.txt для Qt5 (если используете Qt5) Сборка проекта
Cmake полезные команды и переменные для начинающих
Часто используемые команды message() — аналог printf для отладки. set() — задать переменную list() — работать со списками if() / else() / endif() — условные операторы Полезные встроенные переменные CMAKE_BUILD_TYPE — тип сборки (Debug, Release,…
Cmake используем внешние библиотеки (на примере OpenSSL)
Часто требуется использовать сторонние библиотеки. CMake умеет их искать. Способ 1: find_package() (предпочтительный, если пакет поддерживает CMake) Многие библиотеки поставляются с CMake-файлами поиска. Предположим, нам нужен OpenSSL для хеширования. Упрощенный CMakeLists.txt:…