# FindosgProducer

Finds the osgProducer utility library from the OpenSceneGraph toolkit.

Note

The osgProducer library has been removed from the OpenSceneGraph toolkit in early OpenSceneGraph versions (pre 1.0 release) and replaced with osgViewer. Its development has shifted at time to a standalone project and repository Producer, which can be found with `FindProducer` module.

Note

In most cases, it's recommended to use the `FindOpenSceneGraph` module instead and list osgProducer as a component. This will automatically handle dependencies such as the OpenThreads and core osg libraries:

    find_package(OpenSceneGraph COMPONENTS osgProducer)

This module is used internally by `FindOpenSceneGraph` to find the osgProducer library. It is not intended to be included directly during typical use of the `find_package()` command. However, it is available as a standalone module for advanced use cases where finer control over detection is needed. For example, to find the osgProducer explicitly or bypass automatic component detection:

    find_package(osgProducer)

OpenSceneGraph and osgProducer headers are intended to be included in C++ project source code as:

`example.cxx`

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

When working with the OpenSceneGraph toolkit, other libraries such as OpenGL may also be required.

## Result Variables

This module defines the following variables:

`osgProducer_FOUND`

  Boolean indicating whether the osgProducer library of the OpenSceneGraph toolkit is found. For backward compatibility, the `OSGPRODUCER_FOUND` variable is also set to the same value.

`OSGPRODUCER_LIBRARIES`

  The libraries needed to link against to use osgProducer.

`OSGPRODUCER_LIBRARY`

  A result variable that is set to the same value as the `OSGPRODUCER_LIBRARIES` variable.

## Cache Variables

The following cache variables may also be set:

`OSGPRODUCER_INCLUDE_DIR`

  The include directory containing headers needed to use osgProducer.

`OSGPRODUCER_LIBRARY_DEBUG`

  The path to the osgProducer debug library.

## Hints

This module accepts the following variables:

`OSGDIR`

  Environment variable that can be set to help locate the OpenSceneGraph toolkit, including its osgProducer library, when installed in a custom location. It should point to the OpenSceneGraph installation prefix used when it was configured, built, and installed: `./configure --prefix=$OSGDIR`.

## Examples

Finding osgProducer explicitly with this module and creating an interface imported target that encapsulates its usage requirements for linking it to a project target:

    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)

## See Also

- The `FindOpenSceneGraph` module to find OpenSceneGraph toolkit.

- The `FindProducer` module, which finds the standalone Producer library that evolved from the legacy osgProducer.