diff options
author | Jakub Benda <jacob.benda@gmail.com> | 2019-05-16 08:00:21 (GMT) |
---|---|---|
committer | Jakub Benda <jacob.benda@gmail.com> | 2019-05-16 09:35:37 (GMT) |
commit | 89ab54c11239f4832668ecca6a0b0b9edf112bd8 (patch) | |
tree | 86ab34241e48d8c024e64406615ea4aba19d46ca /Modules/FindBLAS.cmake | |
parent | 82c6ec964db9ff3cc6bece9bc0667e5ec691f02d (diff) | |
download | CMake-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.cmake | 17 |
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 () |