summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDr. Thomas Orgis <thomas.orgis@uni-hamburg.de>2022-06-15 00:41:06 +0200
committerDr. Thomas Orgis <thomas.orgis@uni-hamburg.de>2022-06-17 10:43:38 +0200
commit70f15d202f1bfed7a08a36a5977cc94a1a829e2f (patch)
treeae4d08a49179f2375f5291023d392df392fc667c
parentca8a5b05de811d6a95cfa7a33a2985f2b193967f (diff)
downloadcmake-70f15d202f1bfed7a08a36a5977cc94a1a829e2f.tar.gz
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.
-rw-r--r--Modules/FindBLAS.cmake11
-rw-r--r--Modules/FindLAPACK.cmake12
2 files changed, 21 insertions, 2 deletions
diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index 7a381af9b0..d02c58999f 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -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}")
diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake
index 50d4ebd264..699ab7e23c 100644
--- a/Modules/FindLAPACK.cmake
+++ b/Modules/FindLAPACK.cmake
@@ -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}")