# 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 # 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)