Это невозможно сделать с помощью CMake.
CMake сохраняет только один набор свойств компилятора, который является общим для всех целей в файле CMakeLists.txt.Если вы хотите использовать два компилятора, вам нужно запустить CMake дважды.Это даже верно, например, для построения 32-битных и 64-битных двоичных файлов из одной и той же цепочки инструментов компилятора.
Быстрый и грязный способ обойти это с помощью пользовательских команд.Но затем вы получите то, что в основном является прославленными shell-скриптами, что, вероятно, не то, что вам нужно.
Чистое решение: не помещайте их в тот же CMakeLists.txt!В любом случае вы не можете связывать между разными архитектурами, поэтому нет необходимости, чтобы они были в одном файле.Вы можете уменьшить избыточность путем рефакторинга общих частей сценариев CMake в отдельные файлы и include()
их.
Основным недостатком здесь является то, что вы теряете возможность сборки одной командой, но решить этунаписать обертку на вашем любимом языке сценариев, которая позаботится о вызове различных CMake-make-файлов.