FindLAPACK

Find Linear Algebra PACKage (LAPACK) library

This module finds an installed Fortran library that implements the LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).

The approach follows that taken for the autoconf macro file, acx_lapack.m4 (distributed at http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).

Input Variables

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

BLA_STATIC

if ON use static linkage

BLA_VENDOR

If set, checks only the specified vendor, if not set checks all the possibilities. List of vendors valid in this module:

  • FlexiBLAS

  • OpenBLAS

  • FLAME

  • Intel10_32 (intel mkl v10 32 bit, threaded code)

  • Intel10_64lp (intel mkl v10+ 64 bit, threaded code, lp64 model)

  • Intel10_64lp_seq (intel mkl v10+ 64 bit, sequential code, lp64 model)

  • Intel10_64ilp (intel mkl v10+ 64 bit, threaded code, ilp64 model)

  • Intel10_64ilp_seq (intel mkl v10+ 64 bit, sequential code, ilp64 model)

  • Intel10_64_dyn (intel mkl v10+ 64 bit, single dynamic library)

  • Intel (obsolete versions of mkl 32 and 64 bit)

  • ACML

  • Apple

  • NAS

  • Arm

  • Arm_mp

  • Arm_ilp64

  • Arm_ilp64_mp

  • EML

  • EML_mt

  • Generic

New in version 3.6: OpenBLAS support.

New in version 3.11: FLAME support.

New in version 3.13: Added ILP64 MKL variants (Intel10_64ilp, Intel10_64ilp_seq).

New in version 3.17: Added single dynamic library MKL variant (Intel10_64_dyn).

New in version 3.18: Arm Performance Libraries support (Arm, Arm_mp, Arm_ilp64, Arm_ilp64_mp).

New in version 3.19: FlexiBLAS support.

New in version 3.20: Elbrus Math Library support (EML, EML_mt).

BLA_F95

if ON tries to find the BLAS95/LAPACK95 interfaces

BLA_PREFER_PKGCONFIG

New 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

Imported targets

New in version 3.18.

This module defines the following IMPORTED target:

LAPACK::LAPACK

The libraries to use for LAPACK, if found.

Result Variables

This module defines the following variables:

LAPACK_FOUND

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

library implementing the LAPACK95 interface is found

Note

C, CXX or Fortran must be enabled to detect a BLAS/LAPACK library. C or CXX must be enabled to use Intel Math Kernel Library (MKL).

For example, to use Intel MKL libraries and/or Intel compiler:

set(BLA_VENDOR Intel10_64lp)
find_package(LAPACK)