Как установить разные уровни предупреждений для разных файлов?
Хотя я могу установить разные уровни предупреждений в зависимости от компилятора, например:
if(MSVC)
target_compile_options(${TARGET_NAME} PRIVATE /W4 /WX)
else()
target_compile_options(${TARGET_NAME} PRIVATE -Wall -Wextra -pedantic -Werror)
endif()
Я не могу установить их файл за файлом.
В том же каталоге у меня есть набор файлов, имена которых находятся в ${SRC_WARN}
Переменная CMake, для которой требуется другой уровень предупреждения по сравнению с другими.
Есть ли способ указать такое условие с помощью target_compile_options
?
1 ответ
Решение
Вы можете установить параметры компиляции (COMPILE_OPTIONS
) для одного файла (или группы файлов), используя set_source_files_properties()
. Вы можете изменитьCOMPILE_OPTIONS
для тебя ${SRC_WARN}
исходные файлы, добавив к существующему коду CMake:
if(MSVC)
target_compile_options(${TARGET_NAME} PRIVATE /W4 /WX)
# Change these files to have warning level 2.
set_source_files_properties(${SRC_WARN} PROPERTIES COMPILE_OPTIONS /W2)
else()
target_compile_options(${TARGET_NAME} PRIVATE -Wall -Wextra -pedantic -Werror)
# Change these files to inhibit all warnings.
set_source_files_properties(${SRC_WARN} PROPERTIES COMPILE_OPTIONS -w)
endif()