В проекте, где некоторые цели должны быть построены и запущены на платформе сборки, а другие цели должны быть построены для кросс-платформы; какие у нас есть варианты при использовании cmake?Как использовать различные цепочки инструментов
В настоящее время я использую CMAKE_BUILD_TYPE
для определения цепи инструмента, типа сборки и платформы (например, -D CMAKE_BUILD_TYPE=arm_debug
). В одном месте в сборке я переключаю инструменты (компиляторы, ссылки и т. Д.), Флаги командной строки, библиотеки и т. Д. В соответствии со значением CMAKE_BUILD_TYPE. Для каждого типа сборки я создаю каталог сборки.
У этого подхода есть свои недостатки: несколько каталогов сборки и простой способ зависеть от одной цели от одного типа сборки на цели в другом типе сборки (какой-то прекомпилятор, необходимый на платформе сборки, для сборки для кросс-платформы например).
В настоящее время для каждой цели сборки используется единственная цепочка инструментов. Я бы хотел связать цель с целевой платформой/набором инструментов. Это означает, что некоторые библиотеки должны быть созданы для нескольких целевых платформ с различными наборами инструментов.
Большое спасибо за ваш очень полезный ответ! –