FindosgVolume

查找 OpenSceneGraph 工具包中的 osgVolume NodeKit。

注意

在大多数情况下,建议使用 FindOpenSceneGraph 模块并将 osgVolume 列为组件。这将自动处理依赖项,例如 OpenThreads 和核心 osg 库。

find_package(OpenSceneGraph COMPONENTS osgVolume)

此模块由 FindOpenSceneGraph 内部使用,用于查找 osgVolume NodeKit。它不打算在 find_package() 命令的典型使用中直接包含。但是,它作为独立模块提供,适用于需要对检测进行更精细控制的高级用例。例如,显式查找 osgVolume 或绕过自动组件检测。

find_package(osgVolume)

OpenSceneGraph 和 osgVolume 头文件旨在包含在 C++ 项目源代码中,如下所示:

example.cxx
#include <osg/PositionAttitudeTransform>
#include <osgVolume/Volume>
// ...

使用 OpenSceneGraph 工具包时,可能还需要其他库,例如 OpenGL。

结果变量

此模块定义了以下变量

osgVolume_FOUND

布尔值,指示是否找到 OpenSceneGraph 工具包的 osgVolume NodeKit。为了向后兼容,OSGVOLUME_FOUND 变量也设置为相同的值。

OSGVOLUME_LIBRARIES

使用 osgVolume 所需链接的库。

OSGVOLUME_LIBRARY

结果变量,其值与 OSGVOLUME_LIBRARIES 变量相同。

缓存变量

以下缓存变量也可以设置

OSGVOLUME_INCLUDE_DIR

包含使用 osgVolume 所需头文件的包含目录。

OSGVOLUME_LIBRARY_DEBUG

osgVolume 调试库的路径。

提示

此模块接受以下变量

OSGDIR

环境变量,当 OpenSceneGraph 工具包(包括其 osgVolume NodeKit)安装在自定义位置时,可用于帮助定位。它应指向配置、构建和安装时使用的 OpenSceneGraph 安装前缀:./configure --prefix=$OSGDIR

示例

使用此模块显式查找 osgVolume 并创建封装其使用要求的接口导入目标,以便将其链接到项目目标。

find_package(osgVolume)

if(osgVolume_FOUND AND NOT TARGET osgVolume::osgVolume)
  add_library(osgVolume::osgVolume INTERFACE IMPORTED)
  set_target_properties(
    osgVolume::osgVolume
    PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${OSGVOLUME_INCLUDE_DIR}"
      INTERFACE_LINK_LIBRARIES "${OSGVOLUME_LIBRARIES}"
  )
endif()

target_link_libraries(example PRIVATE osgVolume::osgVolume)

另请参阅