我有一个使用VTK作为外部库的项目。在我自己的源代码中,使用-Werror
来确保它们始终是固定的。为了做到这一点"检查"在我的代码中,使用参数INCLUDE_DIRECTORIES
使用SYSTEM
指令在CMake中加载外部库。但是如果某个外部库是通过CMakeLists.txt
文件加载的(如VTK那样)?我无法指定指定VTK是SYSTEM
库,因此VTK警告显示为错误。 有没有办法禁用包含库中的警告?
答案 0 :(得分:2)
VTK自己添加include_directories
,因此除非您使用该行更改VTK的CMake文件,否则您很可能必须使用some string operations更改包含的目录属性。对我有用的一种更快捷的方法是使用include_directories
更改VTK中的行,即lib/cmake/vtk-*/UseVTK.cmake
- 您使用include(${VTK_USE_FILE})
添加的行。我只是改变了行
# Add include directories needed to use VTK.
include_directories(${VTK_INCLUDE_DIRS})
到
# Add include directories needed to use VTK.
include_directories(SYSTEM ${VTK_INCLUDE_DIRS})
似乎已经通过marking them as SYSTEM
libraries压制了VTK头文件中的警告。
答案 1 :(得分:1)
您可以在include_directories(SYSTEM ${VTK_INCLUDE_DIRS})
指令之后插入find_package
指令。
find_package(VTK REQUIRED)
include_directories(SYSTEM ${VTK_INCLUDE_DIRS})
include(${VTK_USE_FILE})