FindosgProducer

查找 OpenSceneGraph 工具包中的 osgProducer 实用库。

注意

osgProducer 库已在 OpenSceneGraph 的早期版本(1.0 版本之前)中从 OpenSceneGraph 工具包中移除,并被 osgViewer 取代。其开发已转移到一个独立的 Producer 项目和存储库,可以通过 FindProducer 模块找到。

注意

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

find_package(OpenSceneGraph COMPONENTS osgProducer)

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

find_package(osgProducer)

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

example.cxx
#include <osg/PositionAttitudeTransform>
#include <osgProducer/OsgSceneHandler>
// ...

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

结果变量

此模块定义了以下变量

osgProducer_FOUND

3.3 版本中新增。

一个布尔值,指示是否找到 OpenSceneGraph 工具包的 osgProducer 库。

OSGPRODUCER_LIBRARIES

使用 osgProducer 所需链接的库。

OSGPRODUCER_LIBRARY

一个结果变量,其值与 OSGPRODUCER_LIBRARIES 变量的值相同。

缓存变量

以下缓存变量也可以设置

OSGPRODUCER_INCLUDE_DIR

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

OSGPRODUCER_LIBRARY_DEBUG

osgProducer 调试库的路径。

提示

此模块接受以下变量

OSGDIR

当 OpenSceneGraph 工具包安装在自定义位置时,可以设置此环境变量来帮助定位它,包括其 osgProducer 库。它应指向构建和安装 OpenSceneGraph 时使用的安装前缀:./configure --prefix=$OSGDIR

已弃用变量

以下变量提供用于向后兼容性

OSGPRODUCER_FOUND

版本 4.2 已弃用: 使用 osgProducer_FOUND,其值相同。

一个布尔值,指示是否找到 OpenSceneGraph 工具包的 osgProducer 库。

示例

使用此模块显式查找 osgProducer,并创建一个封装其链接到项目目标的用法要求的 导入目标

find_package(osgProducer)

if(osgProducer_FOUND AND NOT TARGET osgProducer::osgProducer)
  add_library(osgProducer::osgProducer INTERFACE IMPORTED)
  set_target_properties(
    osgProducer::osgProducer
    PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${OSGPRODUCER_INCLUDE_DIR}"
      INTERFACE_LINK_LIBRARIES "${OSGPRODUCER_LIBRARIES}"
  )
endif()

target_link_libraries(example PRIVATE osgProducer::osgProducer)

另请参阅

  • 用于查找 OpenSceneGraph 工具包的 FindOpenSceneGraph 模块。

  • FindProducer 模块,用于查找从旧版 osgProducer 演变而来的独立 Producer 库。