FindProducer

注意

Producer(也称为 *Open Producer*)库起源于 OpenSceneGraph 工具包早期版本中的 osgProducer 实用程序库,后来发展成为一个独立的库。osgProducer 最终被 osgViewer 库取代,而独立的 Producer 库变得过时且不再维护。有关 OpenSceneGraph 用法的详细信息,请参阅 FindOpenSceneGraph 模块。

此模块查找 Producer 库,这是一个主要为实时图形应用程序设计的窗口和事件处理库。

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

example.cxx
#include <Producer/CameraGroup>

结果变量

此模块定义了以下变量

Producer_FOUND

布尔值,指示是否找到 Producer。为了向后兼容,PRODUCER_FOUND 变量也设置为相同的值。

缓存变量

以下缓存变量也可以设置

PRODUCER_INCLUDE_DIR

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

PRODUCER_LIBRARY

Producer 库的路径,用于链接以供使用。

提示

此模块接受以下变量

PRODUCER_DIR

可以设置的环境变量,用于帮助定位 Producer 库的自定义安装。它应指向安装 Producer 库的根目录。这应与配置和构建 Producer 时使用的安装前缀匹配,例如使用 ./configure --prefix=$PRODUCER_DIR

由于 Producer 历史上与 OpenSceneGraph 紧密集成,此模块还接受以下环境变量作为 PRODUCER_DIR 的等效项,以方便一次性指定多个 OpenSceneGraph 相关库的通用安装根目录。

OSGDIR

PRODUCER_DIR 相同处理的环境变量。

OSG_DIR

PRODUCER_DIR 相同处理的环境变量。

示例

查找 Producer 库并创建一个 导入目标,该目标封装了其用法要求,以便链接到项目目标。

find_package(Producer)

if(Producer_FOUND AND NOT TARGET Producer::Producer)
  add_library(Producer::Producer INTERFACE IMPORTED)
  set_target_properties(
    Producer::Producer
    PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${PRODUCER_INCLUDE_DIR}"
      INTERFACE_LINK_LIBRARIES "${PRODUCER_LIBRARY}"
  )
endif()

target_link_libraries(example PRIVATE Producer::Producer)