FindGSL — CMake 4.1.4 Documentation

# FindGSL

Added in version 3.2.

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 License.

## Imported Targets

If GSL is found, this module defines the following Imported Targets:

`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 the project:

`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

`GSL_ROOT_DIR`

  Set this variable to a directory that contains a GSL installation.

  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:

`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:

    find_package(GSL)
    target_link_libraries(project_target PRIVATE GSL::gsl)