1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
# - Find the LAPACKE library
#
# Usage:
# FIND_PACKAGE(LAPACKE [REQUIRED] [QUIET] )
#
# It sets the following variables:
# LAPACKE_FOUND ... true if LAPACKE is found on the system
# LAPACKE_INCLUDE_DIRS ... LAPACKE include directories
# LAPACKE_LIBRARIES ... path to LAPACKE libraries
# LAPACKE_LIBRARY_DIRS ... LAPACKE library directories
SET(LAPACKE_ROOT_DIR CACHE STRING
"Root directory for custom LAPACKE implementation")
IF (NOT INTEL_MKL_ROOT_DIR)
SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
ENDIF()
IF(NOT LAPACKE_ROOT_DIR)
IF (ENV{LAPACKEDIR})
SET(LAPACKE_ROOT_DIR $ENV{LAPACKEDIR})
ENDIF()
IF (ENV{LAPACKE_ROOT_DIR_DIR})
SET(LAPACKE_ROOT_DIR $ENV{LAPACKE_ROOT_DIR})
ENDIF()
IF (INTEL_MKL_ROOT_DIR)
SET(LAPACKE_ROOT_DIR ${INTEL_MKL_ROOT_DIR})
ENDIF()
ENDIF()
# Check if we can use PkgConfig
FIND_PACKAGE(PkgConfig)
#Determine from PKG
IF(PKG_CONFIG_FOUND AND NOT LAPACKE_ROOT_DIR)
PKG_CHECK_MODULES( PC_LAPACKE QUIET "lapacke")
ENDIF()
IF(PC_LAPACKE_FOUND)
# Verify sanity of LAPACKE pkg-config file.
FOREACH(PC_LIB ${PC_LAPACKE_LIBRARIES})
FIND_LIBRARY(${PC_LIB}_LIBRARY NAMES ${PC_LIB} HINTS ${PC_LAPACKE_LIBRARY_DIRS} )
IF (NOT ${PC_LIB}_LIBRARY)
MESSAGE(FATAL_ERROR "Something is wrong in your pkg-config file - lib ${PC_LIB} not found in ${PC_LAPACKE_LIBRARY_DIRS}")
ENDIF (NOT ${PC_LIB}_LIBRARY)
ENDFOREACH(PC_LIB)
set(LAPACKE_LIBRARIES ${PC_LAPACKE_LIBRARIES})
set(LAPACKE_LIBRARY_DIRS ${PC_LAPACKE_LIBRARY_DIRS})
FIND_PATH(LAPACKE_INCLUDE_DIRS NAMES "lapacke.h"
PATHS ${PC_LAPACKE_INCLUDE_DIRS})
ELSE(PC_LAPACKE_FOUND)
IF(LAPACKE_ROOT_DIR)
#find libs
FIND_LIBRARY(
LAPACKE_LIB
NAMES "lapacke" "LAPACKE" "liblapacke" "mkl_rt"
PATHS ${LAPACKE_ROOT_DIR}
PATH_SUFFIXES "lib" "lib64" "lib/ia32" "lib/intel64"
DOC "LAPACKE Library"
NO_DEFAULT_PATH
)
FIND_LIBRARY(
LAPACK_LIB
NAMES "lapack" "LAPACK" "liblapack" "mkl_rt"
PATHS ${LAPACKE_ROOT_DIR}
PATH_SUFFIXES "lib" "lib64" "lib/ia32" "lib/intel64"
DOC "LAPACK Library"
NO_DEFAULT_PATH
)
FIND_PATH(
LAPACKE_INCLUDES
NAMES "lapacke.h" "mkl_lapacke.h"
PATHS ${LAPACKE_ROOT_DIR}
PATH_SUFFIXES "include"
DOC "LAPACKE Include Directory"
NO_DEFAULT_PATH
)
ELSE()
FIND_LIBRARY(
LAPACKE_LIB
NAMES "lapacke" "liblapacke" "openblas" "mkl_rt"
PATHS
${LIB_INSTALL_DIR}
/opt/intel/mkl/lib/ia32
/opt/intel/mkl/lib/intel64
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/sw/lib
/opt/local/lib
DOC "LAPACKE Library"
)
FIND_LIBRARY(
LAPACK_LIB
NAMES "lapack" "liblapack" "openblas" "mkl_rt"
PATHS
${LIB_INSTALL_DIR}
/opt/intel/mkl/lib/ia32
/opt/intel/mkl/lib/intel64
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/sw/lib
/opt/local/lib
DOC "LAPACK Library"
)
FIND_PATH(
LAPACKE_INCLUDES
NAMES "lapacke.h" "mkl_lapacke.h"
PATHS
${INCLUDE_INSTALL_DIR}
/opt/intel/mkl/include
/usr/include
/usr/local/include
/sw/include
/opt/local/include
DOC "LAPACKE Include Directory"
PATH_SUFFIXES
lapacke
)
ENDIF(LAPACKE_ROOT_DIR)
SET(LAPACKE_INCLUDE_DIRS ${LAPACKE_INCLUDES})
SET(LAPACKE_LIBRARIES ${LAPACKE_LIB} ${LAPACK_LIB})
MARK_AS_ADVANCED(LAPACKE_INCLUDES LAPACKE_LIB LAPACK_LIB)
ENDIF(PC_LAPACKE_FOUND)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LAPACKE DEFAULT_MSG
LAPACKE_LIBRARIES
LAPACKE_INCLUDE_DIRS)
MARK_AS_ADVANCED(LAPACKE_LIBRARIES
LAPACKE_INCLUDE_DIRS
LAPACKE_LIBRARY_DIRS)
|