Я работаю над проектом с Visual Studio Code и CMake, где компилирую/перекрестно компилирую разные цели для разных платформ. На данный момент проект имеет три платформы, каждая из которых использует свой набор инструментов. Я собираюсь упростить названия платформ и цепочек инструментов, чтобы объяснить:
platform1.cmake
, и строится на основе platform1/CMakeLists.txt
.platform2.cmake
, и строится на основе platform2/CMakeLists.txt
.platform2/CMakeLists.txt
Если я индивидуально настрою и соберу каждый из них с помощью командной строки и вручную укажу правильный набор инструментов, то все они будут построены правильно. Но что мне действительно хочется, так это иметь возможность выполнять сборку в Visual Studio Code и указывать, какую цель я создаю.
Однако я все еще новичок в CMake и упираюсь в кирпичную стену, пытаясь понять, как это настроить. Судя по тому, что я читаю, CMake предполагает, что все цели будут использовать одну и ту же цепочку инструментов, и похоже, что Visual Studio Code работает только с одним проектом CMake одновременно.
Есть ли способ сделать это в одном рабочем пространстве кода Visual Studio?
@sweenish Можете ли вы рассказать поподробнее?
Похоже, пресеты — это действительно то, что мне нужно! Если кто-то из вас захочет отправить ответ, я отмечу его как правильный.
Судя по тому, что я читаю, CMake предполагает, что все цели будут использовать одну и ту же цепочку инструментов.
Да. Все цели в одной и той же системе сборки, настроенной CMake. Применяются такие границы, как ВнешнийПроект. См. https://stackoverflow.com/a/76996558/11107541
Visual Studio Code работает только с одним проектом CMake одновременно.
CMake Tools работает одновременно с одним проектом верхнего уровня.
Есть ли способ сделать это в одном рабочем пространстве кода Visual Studio?
Пресеты помогут. В этом случае я бы определил предустановку конфигурации для каждой из этих трех вещей (см. элементы architecture
, toolset
и toolchainFile
). Если бы не было разделения нативной платформы Platform2 и эмуляции, вы могли бы в качестве альтернативы настроить это как несколько исходных каталогов (см. настройки cmake.sourceDirectory
и https://stackoverflow.com/a/73698237/11107541 и ️ 🔁 https://stackoverflow.com/a/77657422/11107541).
В конечном итоге я использовал настройку пресетов, и она отлично работает. VSCode также позволяет легко переключаться между различными пресетами.
Похоже, вам нужны пресеты.