FindLAPACK

Finds the installed Linear Algebra PACKage (LAPACK) Fortran library that implements the LAPACK linear-algebra interface:

find_package(LAPACK [...])

At least one of the C, CXX, or Fortran languages must be enabled.

Imported Targets

This module provides the following Imported Targets:

LAPACK::LAPACK

Added in version 3.18.

Target encapsulating the LAPACK usage requirements, available only if LAPACK is found.

Result Variables

This module defines the following variables:

LAPACK_FOUND

Boolean indicating whether the library implementing the LAPACK interface is found.

LAPACK_LINKER_FLAGS

Uncached list of required linker flags (excluding -l and -L).

LAPACK_LIBRARIES

Uncached list of libraries (using full path name) to link against to use LAPACK.

LAPACK95_LIBRARIES

Uncached list of libraries (using full path name) to link against to use LAPACK95.

LAPACK95_FOUND

Boolean indicating whether the library implementing the LAPACK95 interface is found.

Input Variables

The following variables may be set to influence this module's behavior:

BLA_STATIC

If ON, the static linkage will be used.

BLA_VENDOR

Set to one of the BLAS/LAPACK Vendors to search for BLAS only from the specified vendor. If not set, all vendors are considered.

BLA_F95

If ON, the module tries to find the BLAS95/LAPACK95 interfaces.

BLA_PREFER_PKGCONFIG

Added in version 3.20.

If set, pkg-config will be used to search for a LAPACK library first and if one is found that is preferred.

BLA_PKGCONFIG_LAPACK

Added in version 3.25.

If set, the pkg-config method will look for this module name instead of just lapack.

BLA_SIZEOF_INTEGER

Added in version 3.22.

Specify the BLAS/LAPACK library integer size:

4

Search for a BLAS/LAPACK with 32-bit integer interfaces.

8

Search for a BLAS/LAPACK with 64-bit integer interfaces.

ANY

Search for any BLAS/LAPACK. Most likely, a BLAS/LAPACK with 32-bit integer interfaces will be found.

BLA_THREAD

Added in version 4.1.

Specify the BLAS/LAPACK threading model:

SEQ

Sequential model

OMP

OpenMP model

ANY

Search for any BLAS/LAPACK, if both are available most likely OMP will be found.

This is currently only supported by NVIDIA NVPL.

Intel MKL

To use the Intel MKL implementation of LAPACK, a project must enable at least one of the C or CXX languages. Set BLA_VENDOR to an Intel MKL variant either on the command-line as -DBLA_VENDOR=Intel10_64lp or in project code:

set(BLA_VENDOR Intel10_64lp)
find_package(LAPACK)

In order to build a project using Intel MKL, and end user must first establish an Intel MKL environment. See the FindBLAS module section on Intel MKL for details.

Examples

Finding LAPACK and linking it to a project target:

find_package(LAPACK)
target_link_libraries(project_target PRIVATE LAPACK::LAPACK)