如何为不同的文件设置不同的警告级别?

时间:2019-10-28 11:36:03

标签: cmake compiler-warnings warning-level

虽然我可以根据编译器设置不同的警告级别,例如:

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 :(得分:0)

您可以使用COMPILE_OPTIONS为单个文件(或文件组)设置编译选项(set_source_files_properties())。您可以通过添加到现有的CMake代码来更改COMPILE_OPTIONS源文件的${SRC_WARN}

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()