Я пытаюсь контролировать предупреждения компилятора отдельно для C и кода C ++ в сборке на основе cmake:
Для g cc и clang я могу установить дополнительные флаги, которые применяются только к компилятор C, как это с TARGET_COMPILE_OPTIONS
:
target_compile_options(MyLib PRIVATE
$<$<AND:$<COMPILE_LANGUAGE:C>,$<NOT:$<CXX_COMPILER_ID:MSVC>>>: -Wall>)
Теперь я хочу сделать то же самое, но для MSV C: $<$<AND:$<COMPILE_LANGUAGE:C>,$<CXX_COMPILER_ID:MSVC>>: /W4>
Это не работает - - похоже, что COMPILE_LANGUAGE:C
игнорируется сборками на основе MSV C в смешанных проектах C / C ++. Я тестирую Visual Studio 2019.
Есть ли у кого-нибудь решение для этого?
(кроме использования отдельной цели для кода C)