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



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

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来指定这样的条件?

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

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

相关内容

  • 没有找到相关文章

最新更新