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

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

OSGPRODUCER_LIBRARIES

链接 osgProducer 所需的库。

OSGPRODUCER_LIBRARY

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

缓存变量

以下缓存变量也可以设置

OSGPRODUCER_INCLUDE_DIR

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

OSGPRODUCER_LIBRARY_DEBUG

osgProducer 调试库的路径。

提示

此模块接受以下变量

OSGDIR

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

示例

使用此模块显式查找 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)

另请参阅

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

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