mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00

This marks all `<PACKAGENAME>_FOUND` result variables as deprecated where possible (for `<PackageName>` find modules) to make it clearer which variable to use. In CMake 3.3, the FindPackageHandleStandardArgs module was refactored to set both `<PackageName>_FOUND` and uppercase `<PACKAGENAME>_FOUND` result variables to the same values. Before that, the FOUND_VAR argument could be used to set the result variable. * FindMatlab: Uppercased MATLAB_FOUND is not mentioned as it was never documented. * Documentation for FindPythonInterp and FindPythonLibs modules synced accordingly to their deprecation (3.12 instead of 4.2). * OPENGL_FOUND: deprecation version synced with other find modules. * DevIL_FOUND was introduced in CMake 3.8. The uppercased variant not mentioned as it was previously never documented. Fixes: #27242
161 lines
4.7 KiB
CMake
161 lines
4.7 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file LICENSE.rst or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindOpenThreads
|
|
---------------
|
|
|
|
Finds the OpenThreads C++ based threading library:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(OpenThreads [...])
|
|
|
|
OpenThreads header files are intended to be included as:
|
|
|
|
.. code-block:: c++
|
|
:caption: ``example.cxx``
|
|
|
|
#include <OpenThreads/Thread>
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines the following variables:
|
|
|
|
``OpenThreads_FOUND``
|
|
.. versionadded:: 3.3
|
|
|
|
Boolean indicating whether the OpenThreads library was found.
|
|
|
|
``OPENTHREADS_LIBRARY``
|
|
Libraries needed to link against to use OpenThreads. This provides either
|
|
release (optimized) or debug library variant, which are found separately
|
|
depending on the project's :ref:`Build Configurations`.
|
|
|
|
Cache Variables
|
|
^^^^^^^^^^^^^^^
|
|
|
|
The following cache variables may also be set:
|
|
|
|
``OPENTHREADS_INCLUDE_DIR``
|
|
The directory containing the header files needed to use OpenThreads.
|
|
|
|
Hints
|
|
^^^^^
|
|
|
|
This module accepts the following variables:
|
|
|
|
``OPENTHREADS_DIR``
|
|
An environment or CMake variable that can be set to help find an OpenThreads
|
|
library installed in a custom location. It should point to the installation
|
|
destination that was used when configuring, building, and installing
|
|
OpenThreads library: ``./configure --prefix=$OPENTHREADS_DIR``.
|
|
|
|
This module was originally introduced to support the
|
|
:module:`FindOpenSceneGraph` module and its components. To simplify one-step
|
|
automated configuration and builds when the OpenSceneGraph package is developed
|
|
and distributed upstream, this module supports additional environment variables
|
|
to find dependencies in specific locations. This approach is used by upstream
|
|
package over specifying ``-DVAR=value`` on the command line because it offers
|
|
better isolation from internal changes to the module and allows more flexibility
|
|
when specifying individual OSG components independently of the ``CMAKE_*_PATH``
|
|
variables. Explicit ``-DVAR=value`` arguments can still override these settings
|
|
if needed. Since OpenThreads is an optional standalone dependency of
|
|
OpenSceneGraph, this module also honors the following variables for convenience:
|
|
|
|
``OSG_DIR``
|
|
May be set as an environment or CMake variable. Treated the same as
|
|
``OPENTHREADS_DIR``.
|
|
|
|
``OSGDIR``
|
|
Environment variable treated the same as ``OPENTHREADS_DIR``.
|
|
|
|
Deprecated Variables
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
The following variables are provided for backward compatibility:
|
|
|
|
``OPENTHREADS_FOUND``
|
|
.. deprecated:: 4.2
|
|
Use ``OpenThreads_FOUND``, which has the same value.
|
|
|
|
Boolean indicating whether the OpenThreads library was found.
|
|
|
|
Examples
|
|
^^^^^^^^
|
|
|
|
Finding the OpenThreads library and creating an interface :ref:`imported target
|
|
<Imported Targets>` that encapsulates its usage requirements for linking to a
|
|
project target:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(OpenThreads)
|
|
|
|
if(OpenThreads_FOUND AND NOT TARGET OpenThreads::OpenThreads)
|
|
add_library(OpenThreads::OpenThreads INTERFACE IMPORTED)
|
|
set_target_properties(
|
|
OpenThreads::OpenThreads
|
|
PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${OPENTHREADS_INCLUDE_DIR}"
|
|
INTERFACE_LINK_LIBRARIES "${OPENTHREADS_LIBRARY}"
|
|
)
|
|
endif()
|
|
|
|
target_link_libraries(example PRIVATE OpenThreads::OpenThreads)
|
|
#]=======================================================================]
|
|
|
|
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(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(OpenThreads DEFAULT_MSG
|
|
OPENTHREADS_LIBRARY OPENTHREADS_INCLUDE_DIR)
|