В моем проекте я определил некоторые общие параметры компиляции, используя CMAKE_CXX_FLAGS
глобально.Некоторые другие параметры, которые в общем случае должны применяться ко всем целям, указаны с помощью add_compile_options()
в моем основном файле CMakeLists.
Например, я хочу, чтобы флаг -Wconversion
был применен ко всем целям.Но у меня есть одна внешняя библиотека, которая выдает много предупреждений с включенной этой опцией.Поэтому я хочу отключить опцию только для этой конкретной библиотеки:
get_target_property(EXTLIB_COMPILE_FLAGS ext_lib COMPILE_OPTIONS )
list(REMOVE_ITEM EXTLIB_COMPILE_FLAGS -Wconversion)
set_target_properties(ext_lib PROPERTIES COMPILE_OPTIONS ${EXTLIB_COMPILE_FLAGS } )
Но сейчас только -Wconversion
было установлено с помощью add_compile_options()
.И цель не имеет собственных дополнительных флагов.Итак, после удаления единственной записи из списка я получу пустой список.Вызов set_target_properties () завершается с ошибкой:
set_target_properties вызывается с неправильным числом аргументов.
Можно ли каким-либо образом очистить некоторые целевые свойства полностью?Я использую CMake 3.11