File: FindosgProducer.cmake

package info (click to toggle)
cmake 4.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 152,348 kB
  • sloc: ansic: 403,894; cpp: 303,807; sh: 4,097; python: 3,582; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 108; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (142 lines) | stat: -rw-r--r-- 4,429 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
# file LICENSE.rst or https://cmake.org/licensing for details.

#[=======================================================================[.rst:
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 :module:`FindProducer` module.

.. note::

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

  .. code-block:: cmake

    find_package(OpenSceneGraph COMPONENTS osgProducer)

This module is used internally by :module:`FindOpenSceneGraph` to find the
osgProducer library.  It is not intended to be included directly during typical
use of the :command:`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:

.. code-block:: cmake

  find_package(osgProducer)

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

.. code-block:: c++
  :caption: ``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``
  .. versionadded:: 3.3

  Boolean indicating whether the osgProducer library of the OpenSceneGraph
  toolkit was found.

``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``.

Deprecated Variables
^^^^^^^^^^^^^^^^^^^^

The following variables are provided for backward compatibility:

``OSGPRODUCER_FOUND``
  .. deprecated:: 4.2
    Use ``osgProducer_FOUND``, which has the same value.

  Boolean indicating whether the osgProducer library of the OpenSceneGraph
  toolkit was found.

Examples
^^^^^^^^

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

.. code-block:: cmake

  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 :module:`FindOpenSceneGraph` module to find OpenSceneGraph toolkit.
* The :module:`FindProducer` module, which finds the standalone Producer library
  that evolved from the legacy osgProducer.
#]=======================================================================]

# Created by Eric Wing.

include(${CMAKE_CURRENT_LIST_DIR}/Findosg_functions.cmake)
OSG_FIND_PATH   (OSGPRODUCER osgProducer/OsgSceneHandler)
OSG_FIND_LIBRARY(OSGPRODUCER osgProducer)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(osgProducer DEFAULT_MSG
    OSGPRODUCER_LIBRARY OSGPRODUCER_INCLUDE_DIR)