mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-02 11:49:55 -06:00
Modules/Find{BLAS,LAPACK}: allow choice of pkg-config package
The BLA_PREFER_PKGCONFIG switch is not that useful if you are not able to specify the pkg-config package to use. This adds BLA_PKGCONFIG_BLAS and BLA_PKGCONFIG_LAPACK to that effect, allowing user choice in environments that install differing variants of the BLAS libraries with distinct .pc file names. This is part of work to get more standardized installations of the BLAS libs with specific names, likely blas.pc and lapack.pc only for Netlib reference code, or maybe blas-netlib.pc and lapack-netlib.pc, in any case distinct from choices like openblas-openmp.pc.
This commit is contained in:
@@ -35,6 +35,12 @@ The following variables may be set to influence this module's behavior:
|
||||
if set ``pkg-config`` will be used to search for a BLAS library first
|
||||
and if one is found that is preferred
|
||||
|
||||
``BLA_PKGCONFIG_BLAS``
|
||||
.. versionadded:: 3.25
|
||||
|
||||
If set, the ``pkg-config`` method will look for this module name instead of
|
||||
just ``blas``.
|
||||
|
||||
``BLA_SIZEOF_INTEGER``
|
||||
.. versionadded:: 3.22
|
||||
|
||||
@@ -273,8 +279,11 @@ endif()
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
|
||||
if(BLA_PREFER_PKGCONFIG)
|
||||
if(NOT BLA_PKGCONFIG_BLAS)
|
||||
set(BLA_PKGCONFIG_BLAS "blas")
|
||||
endif()
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PKGC_BLAS QUIET blas)
|
||||
pkg_check_modules(PKGC_BLAS QUIET ${BLA_PKGCONFIG_BLAS})
|
||||
if(PKGC_BLAS_FOUND)
|
||||
set(BLAS_FOUND ${PKGC_BLAS_FOUND})
|
||||
set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}")
|
||||
|
||||
@@ -35,6 +35,13 @@ The following variables may be set to influence this module's behavior:
|
||||
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``
|
||||
.. versionadded:: 3.25
|
||||
|
||||
If set, the ``pkg-config`` method will look for this module name instead of
|
||||
just ``lapack``.
|
||||
|
||||
|
||||
``BLA_SIZEOF_INTEGER``
|
||||
.. versionadded:: 3.22
|
||||
|
||||
@@ -278,8 +285,11 @@ endif()
|
||||
|
||||
# Search with pkg-config if specified
|
||||
if(BLA_PREFER_PKGCONFIG)
|
||||
if(NOT BLA_PKGCONFIG_LAPACK)
|
||||
set(BLA_PKGCONFIG_LAPACK "lapack")
|
||||
endif()
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(PKGC_LAPACK QUIET lapack)
|
||||
pkg_check_modules(PKGC_LAPACK QUIET ${BLA_PKGCONFIG_LAPACK})
|
||||
if(PKGC_LAPACK_FOUND)
|
||||
set(LAPACK_FOUND TRUE)
|
||||
set(LAPACK_LIBRARIES "${PKGC_LAPACK_LINK_LIBRARIES}")
|
||||
|
||||
Reference in New Issue
Block a user