Логически я хочу сделать что-то подобное в моей сборке cmake (приведенной в псевдо-C ++)
exceptions_flag =
Compiler == Clang || Compiler == GCC ? "-fexceptions"
: Compiler == MSVC ? "/U_HAS_EXCEPTIONS;/D_HAS_EXCEPTIONS=1;/EHsc"
Я не уверен, как сделать это за один шаг с помощью cmakeгенераторы лучшее, что я могу придумать, это
set(EXCEPTIONS_FLAG
$<$<CXX_COMPILER_ID:MSVC>:"/U_HAS_EXCEPTIONS;/D_HAS_EXCEPTIONS=1;/EHsc">
if(NOT ${EXCEPTIONS_FLAG})
set(EXCEPTIONS_FLAG "-fexceptions")
endif()
Есть ли лучший способ сделать это?