Как установить разные уровни предупреждений для разных файлов? - PullRequest
0 голосов
/ 28 октября 2019

Хотя я могу установить разные уровни предупреждений в зависимости от компилятора, например:

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 Ответ

0 голосов
/ 28 октября 2019

Вы можете установить параметры компиляции (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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...