|
|
@@ -5,44 +5,113 @@
|
|
|
FindosgPresentation
|
|
|
-------------------
|
|
|
|
|
|
+Finds the osgPresentation NodeKit from the OpenSceneGraph toolkit, available
|
|
|
+since OpenSceneGraph version 3.0.0.
|
|
|
|
|
|
+.. note::
|
|
|
|
|
|
-This is part of the ``Findosg*`` suite used to find OpenSceneGraph
|
|
|
-components. Each component is separate and you must opt in to each
|
|
|
-module. You must also opt into OpenGL and OpenThreads (and Producer
|
|
|
-if needed) as these modules won't do it for you. This is to allow you
|
|
|
-control over your own system piece by piece in case you need to opt
|
|
|
-out of certain components or change the Find behavior for a particular
|
|
|
-module (perhaps because the default :module:`FindOpenGL` module doesn't
|
|
|
-work with your system as an example). If you want to use a more
|
|
|
-convenient module that includes everything, use the
|
|
|
-:module:`FindOpenSceneGraph` instead of the ``Findosg*.cmake`` modules.
|
|
|
+ In most cases, it's recommended to use the :module:`FindOpenSceneGraph` module
|
|
|
+ instead and list osgPresentation as a component. This will automatically
|
|
|
+ handle dependencies such as the OpenThreads and core osg libraries:
|
|
|
|
|
|
-Locate osgPresentation This module defines:
|
|
|
+ .. code-block:: cmake
|
|
|
+
|
|
|
+ find_package(OpenSceneGraph COMPONENTS osgPresentation)
|
|
|
+
|
|
|
+This module is used internally by :module:`FindOpenSceneGraph` to find the
|
|
|
+osgPresentation NodeKit. 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 osgPresentation explicitly or bypass automatic
|
|
|
+component detection:
|
|
|
+
|
|
|
+.. code-block:: cmake
|
|
|
+
|
|
|
+ find_package(osgPresentation)
|
|
|
+
|
|
|
+OpenSceneGraph and osgPresentation headers are intended to be included in C++
|
|
|
+project source code as:
|
|
|
+
|
|
|
+.. code-block:: c++
|
|
|
+ :caption: ``example.cxx``
|
|
|
+
|
|
|
+ #include <osg/PositionAttitudeTransform>
|
|
|
+ #include <osgPresentation/SlideEventHandler>
|
|
|
+ // ...
|
|
|
+
|
|
|
+When working with the OpenSceneGraph toolkit, other libraries such as OpenGL may
|
|
|
+also be required.
|
|
|
+
|
|
|
+Result Variables
|
|
|
+^^^^^^^^^^^^^^^^
|
|
|
+
|
|
|
+This module defines the following variables:
|
|
|
+
|
|
|
+``osgPresentation_FOUND``
|
|
|
+ Boolean indicating whether the osgPresentation NodeKit of the
|
|
|
+ OpenSceneGraph toolkit is found. For backward compatibility, the
|
|
|
+ ``OSGPRESENTATION_FOUND`` variable is also set to the same value.
|
|
|
|
|
|
-``OSGPRESENTATION_FOUND``
|
|
|
- Was osgPresentation found?
|
|
|
-``OSGPRESENTATION_INCLUDE_DIR``
|
|
|
- Where to find the headers
|
|
|
``OSGPRESENTATION_LIBRARIES``
|
|
|
- The libraries to link for osgPresentation (use this)
|
|
|
+ The libraries needed to link against to use osgPresentation.
|
|
|
+
|
|
|
``OSGPRESENTATION_LIBRARY``
|
|
|
- The osgPresentation library
|
|
|
+ A result variable that is set to the same value as the
|
|
|
+ ``OSGPRESENTATION_LIBRARIES`` variable.
|
|
|
+
|
|
|
+Cache Variables
|
|
|
+^^^^^^^^^^^^^^^
|
|
|
+
|
|
|
+The following cache variables may also be set:
|
|
|
+
|
|
|
+``OSGPRESENTATION_INCLUDE_DIR``
|
|
|
+ The include directory containing headers needed to use osgPresentation.
|
|
|
+
|
|
|
``OSGPRESENTATION_LIBRARY_DEBUG``
|
|
|
- The osgPresentation debug library
|
|
|
+ The path to the osgPresentation debug library.
|
|
|
+
|
|
|
+Hints
|
|
|
+^^^^^
|
|
|
+
|
|
|
+This module accepts the following variables:
|
|
|
+
|
|
|
+``OSGDIR``
|
|
|
+ Environment variable that can be set to help locate the OpenSceneGraph
|
|
|
+ toolkit, including its osgPresentation NodeKit, 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 osgPresentation 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(osgPresentation)
|
|
|
+
|
|
|
+ if(osgPresentation_FOUND AND NOT TARGET osgPresentation::osgPresentation)
|
|
|
+ add_library(osgPresentation::osgPresentation INTERFACE IMPORTED)
|
|
|
+ set_target_properties(
|
|
|
+ osgPresentation::osgPresentation
|
|
|
+ PROPERTIES
|
|
|
+ INTERFACE_INCLUDE_DIRECTORIES "${OSGPRESENTATION_INCLUDE_DIR}"
|
|
|
+ INTERFACE_LINK_LIBRARIES "${OSGPRESENTATION_LIBRARIES}"
|
|
|
+ )
|
|
|
+ endif()
|
|
|
|
|
|
-``$OSGDIR`` is an environment variable that would correspond to::
|
|
|
+ target_link_libraries(example PRIVATE osgPresentation::osgPresentation)
|
|
|
|
|
|
- ./configure --prefix=$OSGDIR
|
|
|
+See Also
|
|
|
+^^^^^^^^
|
|
|
|
|
|
-used in building osg.
|
|
|
-Created by Eric Wing. Modified to work with osgPresentation by Robert
|
|
|
-Osfield, January 2012.
|
|
|
+* The :module:`FindOpenSceneGraph` module to find OpenSceneGraph toolkit.
|
|
|
#]=======================================================================]
|
|
|
|
|
|
-# Header files are presumed to be included like
|
|
|
-# #include <osg/PositionAttitudeTransform>
|
|
|
-# #include <osgPresentation/SlideEventHandler>
|
|
|
+# Created by Eric Wing.
|
|
|
+# Modified to work with osgPresentation by Robert Osfield, January 2012.
|
|
|
|
|
|
include(${CMAKE_CURRENT_LIST_DIR}/Findosg_functions.cmake)
|
|
|
OSG_FIND_PATH (OSGPRESENTATION osgPresentation/SlideEventHandler)
|