104 lines
3.4 KiB
CMake
104 lines
3.4 KiB
CMake
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
||
|
|
||
|
#[=======================================================================[.rst:
|
||
|
FindOpenThreads
|
||
|
---------------
|
||
|
|
||
|
|
||
|
|
||
|
OpenThreads is a C++ based threading library. Its largest userbase
|
||
|
seems to OpenSceneGraph so you might notice I accept OSGDIR as an
|
||
|
environment path. I consider this part of the Findosg* suite used to
|
||
|
find OpenSceneGraph components. Each component is separate and you
|
||
|
must opt in to each module.
|
||
|
|
||
|
Locate OpenThreads This module defines OPENTHREADS_LIBRARY
|
||
|
OPENTHREADS_FOUND, if false, do not try to link to OpenThreads
|
||
|
OPENTHREADS_INCLUDE_DIR, where to find the headers
|
||
|
|
||
|
$OPENTHREADS_DIR is an environment variable that would correspond to
|
||
|
the ./configure --prefix=$OPENTHREADS_DIR used in building osg.
|
||
|
|
||
|
[CMake 2.8.10]: The CMake variables OPENTHREADS_DIR or OSG_DIR can now
|
||
|
be used as well to influence detection, instead of needing to specify
|
||
|
an environment variable.
|
||
|
|
||
|
Created by Eric Wing.
|
||
|
#]=======================================================================]
|
||
|
|
||
|
# Header files are presumed to be included like
|
||
|
# #include <OpenThreads/Thread>
|
||
|
|
||
|
# To make it easier for one-step automated configuration/builds,
|
||
|
# we leverage environmental paths. This is preferable
|
||
|
# to the -DVAR=value switches because it insulates the
|
||
|
# users from changes we may make in this script.
|
||
|
# It also offers a little more flexibility than setting
|
||
|
# the CMAKE_*_PATH since we can target specific components.
|
||
|
# However, the default CMake behavior will search system paths
|
||
|
# before anything else. This is problematic in the cases
|
||
|
# where you have an older (stable) version installed, but
|
||
|
# are trying to build a newer version.
|
||
|
# CMake doesn't offer a nice way to globally control this behavior
|
||
|
# so we have to do a nasty "double FIND_" in this module.
|
||
|
# The first FIND disables the CMAKE_ search paths and only checks
|
||
|
# the environmental paths.
|
||
|
# If nothing is found, then the second find will search the
|
||
|
# standard install paths.
|
||
|
# Explicit -DVAR=value arguments should still be able to override everything.
|
||
|
|
||
|
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
|
||
|
|
||
|
find_path(OPENTHREADS_INCLUDE_DIR OpenThreads/Thread
|
||
|
HINTS
|
||
|
ENV OPENTHREADS_INCLUDE_DIR
|
||
|
ENV OPENTHREADS_DIR
|
||
|
ENV OSG_INCLUDE_DIR
|
||
|
ENV OSG_DIR
|
||
|
ENV OSGDIR
|
||
|
ENV OpenThreads_ROOT
|
||
|
ENV OSG_ROOT
|
||
|
${OPENTHREADS_DIR}
|
||
|
${OSG_DIR}
|
||
|
PATH_SUFFIXES include
|
||
|
)
|
||
|
|
||
|
|
||
|
find_library(OPENTHREADS_LIBRARY_RELEASE
|
||
|
NAMES OpenThreads OpenThreadsWin32
|
||
|
HINTS
|
||
|
ENV OPENTHREADS_LIBRARY_DIR
|
||
|
ENV OPENTHREADS_DIR
|
||
|
ENV OSG_LIBRARY_DIR
|
||
|
ENV OSG_DIR
|
||
|
ENV OSGDIR
|
||
|
ENV OpenThreads_ROOT
|
||
|
ENV OSG_ROOT
|
||
|
${OPENTHREADS_DIR}
|
||
|
${OSG_DIR}
|
||
|
PATH_SUFFIXES lib
|
||
|
)
|
||
|
|
||
|
find_library(OPENTHREADS_LIBRARY_DEBUG
|
||
|
NAMES OpenThreadsd OpenThreadsWin32d
|
||
|
HINTS
|
||
|
ENV OPENTHREADS_DEBUG_LIBRARY_DIR
|
||
|
ENV OPENTHREADS_LIBRARY_DIR
|
||
|
ENV OPENTHREADS_DIR
|
||
|
ENV OSG_LIBRARY_DIR
|
||
|
ENV OSG_DIR
|
||
|
ENV OSGDIR
|
||
|
ENV OpenThreads_ROOT
|
||
|
ENV OSG_ROOT
|
||
|
${OPENTHREADS_DIR}
|
||
|
${OSG_DIR}
|
||
|
PATH_SUFFIXES lib
|
||
|
)
|
||
|
|
||
|
select_library_configurations(OPENTHREADS)
|
||
|
|
||
|
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenThreads DEFAULT_MSG
|
||
|
OPENTHREADS_LIBRARY OPENTHREADS_INCLUDE_DIR)
|