2018-02-17 13:17:07 +08:00
# Due to the complexity involved, this package doesn't install MKL. It instead verifies that MKL is installed.
# Other packages can depend on this package to declare a dependency on MKL.
# If this package is installed, we assume that MKL is properly installed.
set ( VCPKG_POLICY_EMPTY_PACKAGE enabled )
2020-08-20 10:29:14 +08:00
set ( MKL_REQUIRED_VERSION "20200000" )
2018-02-17 13:17:07 +08:00
set ( ProgramFilesx86 "ProgramFiles(x86)" )
set ( INTEL_ROOT $ENV{ ${ProgramFilesx86 } }/IntelSWTools/compilers_and_libraries/windows )
find_path ( MKL_ROOT include/mkl.h PATHS $ENV{ MKLROOT } ${ INTEL_ROOT } /mkl DOC "Folder contains MKL" )
if ( MKL_ROOT STREQUAL "MKL_ROOT-NOTFOUND" )
message ( FATAL_ERROR "Could not find MKL. Before continuing, please download and install MKL (${MKL_REQUIRED_VERSION} or higher) from:"
" \ n h t t p s : / / r e g i s t r a t i o n c e n t e r . i n t e l . c o m / e n / p r o d u c t s / d o w n l o a d / 3 1 7 8 / \ n "
" \ n A l s o e n s u r e v c p k g h a s b e e n r e b u i l t w i t h t h e l a t e s t version ( v0.0.104 or later ) " )
endif ( )
# file(STRINGS ${MKL_ROOT}/include/mkl_version.h MKL_VERSION_DEFINITION REGEX "__INTEL_MKL((_MINOR)|(_UPDATE))?__")
# string(REGEX MATCHALL "([0-9]+)" MKL_VERSION ${MKL_VERSION_DEFINITION})
# list(GET MKL_VERSION 0 MKL_VERSION_MAJOR)
# list(GET MKL_VERSION 1 MKL_VERSION_MINOR)
# list(GET MKL_VERSION 2 MKL_VERSION_UPDATE)
file ( STRINGS ${ MKL_ROOT } /include/mkl_version.h MKL_VERSION_DEFINITION REGEX "INTEL_MKL_VERSION" )
string ( REGEX MATCH "([0-9]+)" MKL_VERSION ${ MKL_VERSION_DEFINITION } )
if ( MKL_VERSION LESS MKL_REQUIRED_VERSION )
message ( FATAL_ERROR "MKL ${MKL_VERSION} is found but ${MKL_REQUIRED_VERSION} is required. Please download and install a more recent version of MKL from:"
" \ n h t t p s : / / r e g i s t r a t i o n c e n t e r . i n t e l . c o m / e n / p r o d u c t s / d o w n l o a d / 3 1 7 8 / \ n " )
endif ( )