File: FindLAPACKE.cmake

package info (click to toggle)
arrayfire 3.3.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 109,016 kB
  • sloc: cpp: 127,909; lisp: 6,878; python: 3,923; ansic: 1,051; sh: 347; makefile: 338; xml: 175
file content (143 lines) | stat: -rw-r--r-- 4,344 bytes parent folder | download
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)