Хорошо, у меня есть существующий проект, который компилирует код, создает исполняемые файлы, и все отлично работает (как на Linux, так и на Windows).
Теперь ... Я хочу добавить другой исполняемый файл в мой проект, но разница в том, что я хочу кросс-компилировать этот исполняемый файл. Мы используем Clang для всего, поэтому мы можем передать --target в качестве флага компилятора для этой новой цели, и это работает (т.е. код компилируется для цели, которую я хочу).
Проблема с компоновщиком. Когда я нахожусь на Windows, все становится ужасно, потому что цель - x86_64-elf, и поэтому link.exe не может использовать это. Если мы передадим -fuse-ld = lld, он будет проигнорирован, поскольку CMake уже установит это в link.exe. CMake также добавляет кучу Windows speci c нежелательных библиотек, и, похоже, нет способа отключить этот материал.
Есть ли способ добавить цель и дать это определенная c цепочка инструментов, или что-то подобное с CMake без необходимости использовать ExternalProject_Add для поддержки кросс-компиляции определенной c цели. Это то, как мы делали это раньше, и это прекрасно работает, но у этого подхода много недостатков. Я понял, я бы спросил.