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 was found.
-
LAPACK_LINKER_FLAGS -
Uncached list of required linker flags (excluding
-land-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 was 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-configwill 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-configmethod will look for this module name instead of justlapack. -
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
OMPwill 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)
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/module/FindLAPACK.html