在Cmake中包含VTK目录作为系统包含

时间:2014-04-25 19:34:47

标签: cmake vtk

我有一个使用VTK作为外部库的项目。在我自己的源代码中,使用-Werror来确保它们始终是固定的。为了做到这一点"检查"在我的代码中,使用参数INCLUDE_DIRECTORIES使用SYSTEM指令在CMake中加载外部库。但是如果某个外部库是通过CMakeLists.txt文件加载的(如VTK那样)?我无法指定指定VTK是SYSTEM库,因此VTK警告显示为错误。 有没有办法禁用包含库中的警告?

2 个答案:

答案 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})