summaryrefslogtreecommitdiffstats
path: root/Modules/FindBLAS.cmake
diff options
context:
space:
mode:
authorJakub Benda <jacob.benda@gmail.com>2019-05-16 08:00:21 (GMT)
committerJakub Benda <jacob.benda@gmail.com>2019-05-16 09:35:37 (GMT)
commit89ab54c11239f4832668ecca6a0b0b9edf112bd8 (patch)
tree86ab34241e48d8c024e64406615ea4aba19d46ca /Modules/FindBLAS.cmake
parent82c6ec964db9ff3cc6bece9bc0667e5ec691f02d (diff)
downloadCMake-89ab54c11239f4832668ecca6a0b0b9edf112bd8.zip
CMake-89ab54c11239f4832668ecca6a0b0b9edf112bd8.tar.gz
CMake-89ab54c11239f4832668ecca6a0b0b9edf112bd8.tar.bz2
FindBLAS: Choose MKL arch based on BLA_VENDOR
Recently, FindBLAS has been extended with additional library search path based on the environment variable MKLROOT. However, the choice of the Intel MKL architecture (IA-32 vs Intel64) was based on unrelated (and possibly undefined) size of integer. This commit changes the selection of the Intel MKL architecture to instead consider the variable BLA_VENDOR, if available. So, if the environment variable MKLROOT is defined and BLA_VENDOR=Intel10_32, then $ENV{MKLROOT}/lib/ia32_<OS> will be added to the search path (OS = lin, win, or mac). Similarly, if MKLROOT is defined and BLA_VENDOR=Intel10_64lp or BLA_VENDOR=Intel10_64ilp, then the path $ENV{MKLROOT}/intel64_<OS> will be used. If either MKLROOT or BLA_VENDOR is undefined, no additional search path on top of LD_LIBRARY_PATH / DYLD_LIBRARY_PATH / LIB is be added.
Diffstat (limited to 'Modules/FindBLAS.cmake')
-rw-r--r--Modules/FindBLAS.cmake17
1 files changed, 8 insertions, 9 deletions
diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
index 8d55ac7..65e5d1c 100644
--- a/Modules/FindBLAS.cmake
+++ b/Modules/FindBLAS.cmake
@@ -403,20 +403,19 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
endif ()
if (DEFINED ENV{MKLROOT})
- set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}")
+ if (BLA_VENDOR STREQUAL "Intel10_32")
+ set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/ia32")
+ elseif (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$")
+ set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/intel64")
+ endif ()
endif ()
if (_BLAS_MKLROOT_LIB_DIR)
- if( SIZEOF_INTEGER EQUAL 8 )
- set( _BLAS_MKL_PATH_PREFIX "intel64" )
- else()
- set( _BLAS_MKL_PATH_PREFIX "ia32" )
- endif()
if (WIN32)
- string(APPEND _BLAS_MKLROOT_LIB_DIR "/lib/${_BLAS_MKL_PATH_PREFIX}_win")
+ string(APPEND _BLAS_MKLROOT_LIB_DIR "_win")
elseif (APPLE)
- string(APPEND _BLAS_MKLROOT_LIB_DIR "/lib/${_BLAS_MKL_PATH_PREFIX}_mac")
+ string(APPEND _BLAS_MKLROOT_LIB_DIR "_mac")
else ()
- string(APPEND _BLAS_MKLROOT_LIB_DIR "/lib/${_BLAS_MKL_PATH_PREFIX}_lin")
+ string(APPEND _BLAS_MKLROOT_LIB_DIR "_lin")
endif ()
endif ()