123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # 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.
- 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
- 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
- )
- if(OPENTHREADS_LIBRARY_DEBUG)
- set(OPENTHREADS_LIBRARIES
- optimized ${OPENTHREADS_LIBRARY}
- debug ${OPENTHREADS_LIBRARY_DEBUG})
- else()
- set(OPENTHREADS_LIBRARIES ${OPENTHREADS_LIBRARY})
- endif()
- include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenThreads DEFAULT_MSG
- OPENTHREADS_LIBRARY OPENTHREADS_INCLUDE_DIR)
|