忽略/仅使用CMake显示某些目录中的错误/警告

har*_*oth 11 compiler-errors cmake compiler-warnings qt-creator

主要问题:是否有cmake的配置,仅显示或忽略某个目录中的编译器警告/错误?

替代解决方案:我如何在QtCreator中切换它?

背景/动机:我正在研究一个更大的CMake项目,并且只想从我的子项目中关注警告和错误.我正在和QtCreator合作,在一堆外国人的帮助下寻找"我的"错误/警告让我很烦.

ron*_*kot 16

您可以在CMake中至少为某些目标或某些文件设置编译器警告选项.

# For target
set_target_properties(your_project_name PROPERTIES COMPILE_FLAGS "...")

# For files
set_source_files_properties(
  ${list_of_your_files}
  PROPERTIES
  COMPILE_FLAGS "..."
)
Run Code Online (Sandbox Code Playgroud)

通过将项目分离为子项目,使用add_subdirectory(your_project)和在项目中使用CMakeLists.txt 添加项目,也可以设置每个文件夹的选项add_definitions(...).

来自CMake文档:

add_definitions 在当前目录及以下的源中为编译器命令行添加标志.


Jiu*_*Jiu 8

与@ronkot 的回答基本相同。但不需要add_subdirectory特定目录,使用set_source_files_propertieswithfile(GLOB_RECURSE ...)也可以。

file(GLOB_RECURSE SRC_DIR "SRC_DIR/*.c" "SRC_DIR/*.h")

set_source_files_properties(
  ${SRC_DIR}
  PROPERTIES
  COMPILE_FLAGS "-w"
)
Run Code Online (Sandbox Code Playgroud)