Forked from
Nektar / Nektar
8317 commits behind, 186 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
FindWin32Lapack.cmake 2.45 KiB
FIND_LIBRARY(WIN32_BLAS NAMES libblas PATHS ${TPSRC})
FIND_LIBRARY(WIN32_LAPACK NAMES liblapack PATHS ${TPSRC})
IF (NOT WIN32_BLAS OR NOT WIN32_LAPACK)
IF (CMAKE_CL_64 OR CMAKE_GENERATOR MATCHES Win64)
SET(WIN_ZIP_FILE "win64-blas-lapack.zip")
SET(WIN_ZIP_MD5_VALUE "b5ad4f7335ca964bbdafab129e44a046")
SET(WIN_ZIP_SHA1_VALUE "adb331fa195db264e95e46b902887f12971dbf48")
SET(WIN_ZIP_SHA256_VALUE "0e6e3360cdf577718ee57a6fd27c47bac0391d3c7d373e29a0352505e1dc912b")
ELSE()
SET(WIN_ZIP_FILE "win32-blas-lapack.zip")
SET(WIN_ZIP_MD5_VALUE "6dbf9cced1fb73cc093ccc6560cb46e2")
SET(WIN_ZIP_SHA1_VALUE "39c5deaf17211a5012ccfd9d0258da04a7ceb197")
SET(WIN_ZIP_SHA256_VALUE "6bb347aa717530fa74b71539f331bb4027767d8b25b8a26c741b540c73398a03")
ENDIF()
SET(WIN_ZIP_PATH ${TPSRC}/${WIN_ZIP_FILE})
IF (NOT EXISTS ${WIN_ZIP_PATH})
FILE(DOWNLOAD ${TPURL}/${WIN_ZIP_FILE} ${WIN_ZIP_PATH})
ENDIF()
# Calculate expected MD5 and SHA128 hashes
FILE (MD5 ${WIN_ZIP_PATH} WIN_ZIP_MD5)
FILE (SHA1 ${WIN_ZIP_PATH} WIN_ZIP_SHA1)
FILE (SHA256 ${WIN_ZIP_PATH} WIN_ZIP_SHA256)
STRING(TOLOWER "${WIN_ZIP_MD5}" WIN_ZIP_MD5)
STRING(TOLOWER "${WIN_ZIP_SHA1}" WIN_ZIP_SHA1)
STRING(TOLOWER "${WIN_ZIP_SHA256}" WIN_ZIP_SHA256)
IF ((NOT WIN_ZIP_MD5 STREQUAL WIN_ZIP_MD5_VALUE) OR
(NOT WIN_ZIP_SHA1 STREQUAL WIN_ZIP_SHA1_VALUE) OR
(NOT WIN_ZIP_SHA256 STREQUAL WIN_ZIP_SHA256_VALUE))
MESSAGE(FATAL_ERROR "Security error: Win32 BLAS/LAPACK file has "
"MD5, SHA1 or SHA256 hash")
ENDIF()
EXECUTE_PROCESS(
COMMAND ${CMAKE_COMMAND} -E tar jxf ${WIN_ZIP_PATH}
WORKING_DIRECTORY ${TPSRC}
)
# For some reason CMake refuses to run FIND_LIBRARY again so we
# force this to the correct library.
SET(WIN32_BLAS "${TPSRC}/libblas.lib" CACHE FILEPATH "Blas" FORCE)
SET(WIN32_LAPACK "${TPSRC}/liblapack.lib" CACHE FILEPATH "LAPACK" FORCE)
IF (NOT WIN32_BLAS)
MESSAGE(FATAL_ERROR "Could not find BLAS library after unzipping!")
ENDIF()
IF (NOT WIN32_LAPACK)
MESSAGE(FATAL_ERROR "Could not find LAPACK library after unzipping!")
ENDIF()
ENDIF ()
GET_FILENAME_COMPONENT(LAPACK_DIR ${WIN32_LAPACK} PATH CACHE)
LINK_DIRECTORIES(${LAPACK_DIR})
MESSAGE(STATUS "Found Win32 BLAS: ${WIN32_BLAS}")
MESSAGE(STATUS "Found Win32 Lapack: ${WIN32_LAPACK}")