|
|
@@ -126,6 +126,8 @@ macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
|
|
|
endif ()
|
|
|
endif ()
|
|
|
|
|
|
+ list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
|
|
|
+
|
|
|
foreach(_library ${_list})
|
|
|
set(_combined_name ${_combined_name}_${_library})
|
|
|
|
|
|
@@ -170,6 +172,8 @@ macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
|
|
|
if(_libraries_work)
|
|
|
if("${_list}" STREQUAL "")
|
|
|
set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
|
|
|
+ else()
|
|
|
+ set(${LIBRARIES} ${${LIBRARIES}} ${_thread}) # for static link
|
|
|
endif()
|
|
|
else()
|
|
|
set(${LIBRARIES} FALSE)
|
|
|
@@ -205,21 +209,34 @@ endif ()
|
|
|
#BLAS in intel mkl 10+ library? (em64t 64bit)
|
|
|
if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
|
|
|
if (NOT BLAS_LIBRARIES)
|
|
|
+
|
|
|
+ # System-specific settings
|
|
|
if (WIN32)
|
|
|
if (BLA_STATIC)
|
|
|
set(BLAS_mkl_DLL_SUFFIX "")
|
|
|
else()
|
|
|
set(BLAS_mkl_DLL_SUFFIX "_dll")
|
|
|
endif()
|
|
|
+ else()
|
|
|
+ if(CMAKE_Fortran_COMPILER_LOADED AND CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
|
|
|
+ set(BLAS_mkl_INTFACE "gf")
|
|
|
+ set(BLAS_mkl_THREADING "gnu")
|
|
|
+ set(BLAS_mkl_OMP "gomp")
|
|
|
+ else()
|
|
|
+ set(BLAS_mkl_INTFACE "intel")
|
|
|
+ set(BLAS_mkl_THREADING "intel")
|
|
|
+ set(BLAS_mkl_OMP "iomp5")
|
|
|
+ endif()
|
|
|
+ set(BLAS_mkl_LM "-lm")
|
|
|
+ set(BLAS_mkl_LDL "-ldl")
|
|
|
endif()
|
|
|
+
|
|
|
if (BLA_VENDOR MATCHES "_64ilp")
|
|
|
set(BLAS_mkl_ILP_MODE "ilp64")
|
|
|
else ()
|
|
|
set(BLAS_mkl_ILP_MODE "lp64")
|
|
|
endif ()
|
|
|
- if (NOT WIN32)
|
|
|
- set(LM "-lm")
|
|
|
- endif ()
|
|
|
+
|
|
|
if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
|
|
|
if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
|
|
|
find_package(Threads)
|
|
|
@@ -269,25 +286,20 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
|
|
|
else ()
|
|
|
if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
|
|
|
list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_blas95 mkl_intel mkl_intel_thread mkl_core guide")
|
|
|
+ "mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
|
|
|
endif ()
|
|
|
if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
|
|
|
# old version
|
|
|
list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_blas95 mkl_intel_${BLAS_mkl_ILP_MODE} mkl_intel_thread mkl_core guide")
|
|
|
+ "mkl_blas95 mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
|
|
|
|
|
|
# mkl >= 10.3
|
|
|
- if (CMAKE_C_COMPILER MATCHES ".+gcc")
|
|
|
- list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_intel_${BLAS_mkl_ILP_MODE} mkl_gnu_thread mkl_core gomp")
|
|
|
- else ()
|
|
|
- list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_intel_${BLAS_mkl_ILP_MODE} mkl_intel_thread mkl_core iomp5")
|
|
|
- endif ()
|
|
|
+ list(APPEND BLAS_SEARCH_LIBS
|
|
|
+ "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
|
|
|
endif ()
|
|
|
if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
|
|
|
list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_intel_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
|
|
|
+ "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
|
|
|
endif ()
|
|
|
endif ()
|
|
|
else ()
|
|
|
@@ -330,26 +342,21 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
|
|
|
else ()
|
|
|
if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
|
|
|
list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_intel mkl_intel_thread mkl_core guide")
|
|
|
+ "mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
|
|
|
endif ()
|
|
|
if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
|
|
|
|
|
|
# old version
|
|
|
list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_intel_${BLAS_mkl_ILP_MODE} mkl_intel_thread mkl_core guide")
|
|
|
+ "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
|
|
|
|
|
|
# mkl >= 10.3
|
|
|
- if (CMAKE_C_COMPILER MATCHES ".+gcc")
|
|
|
- list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_intel_${BLAS_mkl_ILP_MODE} mkl_gnu_thread mkl_core gomp")
|
|
|
- else ()
|
|
|
- list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_intel_${BLAS_mkl_ILP_MODE} mkl_intel_thread mkl_core iomp5")
|
|
|
- endif ()
|
|
|
+ list(APPEND BLAS_SEARCH_LIBS
|
|
|
+ "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
|
|
|
endif ()
|
|
|
if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
|
|
|
list(APPEND BLAS_SEARCH_LIBS
|
|
|
- "mkl_intel_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
|
|
|
+ "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
|
|
|
endif ()
|
|
|
|
|
|
#older vesions of intel mkl libs
|
|
|
@@ -373,13 +380,19 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
|
|
|
${BLAS_mkl_SEARCH_SYMBOL}
|
|
|
""
|
|
|
"${SEARCH_LIBS}"
|
|
|
- "${CMAKE_THREAD_LIBS_INIT};${LM}"
|
|
|
+ "${CMAKE_THREAD_LIBS_INIT};${BLAS_mkl_LM};${BLAS_mkl_LDL}"
|
|
|
)
|
|
|
endif ()
|
|
|
endforeach ()
|
|
|
|
|
|
endif ()
|
|
|
unset(BLAS_mkl_ILP_MODE)
|
|
|
+ unset(BLAS_mkl_INTFACE)
|
|
|
+ unset(BLAS_mkl_THREADING)
|
|
|
+ unset(BLAS_mkl_OMP)
|
|
|
+ unset(BLAS_mkl_DLL_SUFFIX)
|
|
|
+ unset(BLAS_mkl_LM)
|
|
|
+ unset(BLAS_mkl_LDL)
|
|
|
endif ()
|
|
|
endif ()
|
|
|
|