Cmake 32

Cmake

Управление свойствами целей: target_include_directories, target_compile_definitions, target_compile_features

Введение Статья 575 разобрала видимость зависимостей между целями — в этой статье разберём аналогичную, но применённую к отдельным свойствам конкретной цели систему команд target_*: пути включения заголовков, макроопределения…

Cmake

Переменные и кэш CMake: разница, scope, CACHE-переменные

Введение Статья 576 уже использовала переменные (CMAKE_CURRENT_SOURCE_DIR) без подробного разбора — в этой статье разберём систему переменных CMake систематически: обычные переменные с их областью видимости, и кэш-переменные, сохраняющиеся…

Cmake

find_package: Module vs Config режимы, написание собственного Find-модуля

Введение Циклы Qt Multimedia, OpenCV (статья 561) и PySide6 неоднократно использовали find_package() для подключения внешних библиотек без подробного объяснения внутренней механики — в этой статье разберём два различающихся…

Cmake

FetchContent и ExternalProject: подключение внешних зависимостей без системного менеджера пакетов

Введение Статья 578 разобрала find_package для уже установленных в системе библиотек — FetchContent и ExternalProject решают альтернативную задачу: автоматическое скачивание и сборку зависимости прямо в процессе конфигурации/сборки текущего…

Cmake

Генераторные выражения (generator expressions): $<...>, условная конфигурация

Введение Статья 576 кратко использовала генераторное выражение $<$<CONFIG:Debug>:...> без подробного объяснения — в этой статье разберём этот специфичный, но мощный синтаксис CMake систематически: генераторные выражения вычисляются не на…

Cmake

Кросс-компиляция и toolchain-файлы: сборка для другой платформы

Введение Embedded-цикл основного плана (статьи 351-360) разбирал STM32/bare-metal разработку, подразумевая сборку под архитектуру, отличную от той, на которой выполняется сама компиляция — в этой статье разберём механизм CMake,…