diff --git a/Modules/FindGSL.cmake b/Modules/FindGSL.cmake index 57149799b3..a3cd654245 100644 --- a/Modules/FindGSL.cmake +++ b/Modules/FindGSL.cmake @@ -7,7 +7,7 @@ FindGSL .. versionadded:: 3.2 -Find the native GNU Scientific Library (GSL) includes and libraries. +Finds the native GNU Scientific Library (GSL) includes and libraries. The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public @@ -16,47 +16,71 @@ License. Imported Targets ^^^^^^^^^^^^^^^^ -If GSL is found, this module defines the following :prop_tgt:`IMPORTED` -targets:: +If GSL is found, this module defines the following :ref:`Imported Targets`: - GSL::gsl - The main GSL library. - GSL::gslcblas - The CBLAS support library used by GSL. +``GSL::gsl`` + The main GSL library that provides all usage requirements to use GSL. +``GSL::gslcblas`` + The CBLAS support library used by GSL. It is linked also into the + ``GSL::gsl`` target but provided separately for granularity. Result Variables ^^^^^^^^^^^^^^^^ -This module will set the following variables in your project:: +This module will set the following variables in the project: - GSL_FOUND - True if GSL found on the local system - GSL_INCLUDE_DIRS - Location of GSL header files. - GSL_LIBRARIES - The GSL libraries. - GSL_VERSION - The version of the discovered GSL install. +``GSL_FOUND`` + True if GSL is found on the local system. +``GSL_INCLUDE_DIRS`` + Directory containing GSL header files. +``GSL_LIBRARIES`` + The GSL libraries. +``GSL_VERSION`` + The version of the discovered GSL installation. Hints ^^^^^ -Set ``GSL_ROOT_DIR`` to a directory that contains a GSL installation. +``GSL_ROOT_DIR`` + Set this variable to a directory that contains a GSL installation. -This script expects to find libraries at ``$GSL_ROOT_DIR/lib`` and the GSL -headers at ``$GSL_ROOT_DIR/include/gsl``. The library directory may -optionally provide Release and Debug folders. If available, the libraries -named ``gsld``, ``gslblasd`` or ``cblasd`` are recognized as debug libraries. -For Unix-like systems, this script will use ``$GSL_ROOT_DIR/bin/gsl-config`` -(if found) to aid in the discovery of GSL. + If this variable is not set, this module will use pkg-config and default paths + to find GSL. If this variable is provided, then this module expects to find + libraries at ``${GSL_ROOT_DIR}/lib`` and the GSL headers at + ``${GSL_ROOT_DIR}/include/gsl``. + + The library directory may optionally provide Release and Debug folders. If + available, the libraries named ``gsld``, ``gslblasd`` or ``cblasd`` are + recognized as debug libraries. For Unix-like systems, this module will also + use ``gsl-config`` (if found) to aid in the discovery of GSL. Cache Variables ^^^^^^^^^^^^^^^ This module may set the following variables depending on platform and type of GSL installation discovered. These variables may optionally be set to -help this module find the correct files:: +help this module find the correct files: - GSL_CBLAS_LIBRARY - Location of the GSL CBLAS library. - GSL_CBLAS_LIBRARY_DEBUG - Location of the debug GSL CBLAS library (if any). - GSL_CONFIG_EXECUTABLE - Location of the ``gsl-config`` script (if any). - GSL_LIBRARY - Location of the GSL library. - GSL_LIBRARY_DEBUG - Location of the debug GSL library (if any). +``GSL_CBLAS_LIBRARY`` + Location of the GSL CBLAS library. +``GSL_CBLAS_LIBRARY_DEBUG`` + Location of the debug GSL CBLAS library (if any). +``GSL_CONFIG_EXECUTABLE`` + Location of the ``gsl-config`` script (if any). +``GSL_LIBRARY`` + Location of the GSL library. +``GSL_LIBRARY_DEBUG`` + Location of the debug GSL library (if any). +Examples +^^^^^^^^ + +Finding GSL and linking it to a project target: + +.. code-block:: cmake + + find_package(GSL) + target_link_libraries(project_target PRIVATE GSL::gsl) #]=======================================================================] cmake_policy(PUSH)