|
- https://sources.debian.org/data/main/a/arrayfire/3.3.2+dfsg1-4/debian/patches/Fix-LAPACKE-detection.patch
-
- From: Ghislain Antony Vaillant <ghisvail@gmail.com>
- Date: Wed, 2 Mar 2016 10:46:50 +0000
- Subject: Fix LAPACKE detection.
-
- ---
- CMakeModules/FindLAPACKE.cmake | 54 +++++++++++++++------------------------
- src/backend/cpu/CMakeLists.txt | 18 ++++++-------
- src/backend/cuda/CMakeLists.txt | 11 ++++----
- src/backend/opencl/CMakeLists.txt | 19 +++++++-------
- 4 files changed, 45 insertions(+), 57 deletions(-)
-
- diff --git a/CMakeModules/FindLAPACKE.cmake b/CMakeModules/FindLAPACKE.cmake
- index 9251ee9..1a73632 100644
- --- a/CMakeModules/FindLAPACKE.cmake
- +++ b/CMakeModules/FindLAPACKE.cmake
- @@ -4,13 +4,13 @@
- # FIND_PACKAGE(LAPACKE [REQUIRED] [QUIET] )
- #
- # It sets the following variables:
- -# LAPACK_FOUND ... true if LAPACKE is found on the system
- -# LAPACK_LIBRARIES ... full path to LAPACKE library
- -# LAPACK_INCLUDES ... LAPACKE include directory
- -#
- +# 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 LAPACK implementation")
- + "Root directory for custom LAPACKE implementation")
-
- IF (NOT INTEL_MKL_ROOT_DIR)
- SET(INTEL_MKL_ROOT_DIR $ENV{INTEL_MKL_ROOT})
- @@ -40,29 +40,20 @@ IF(PKG_CONFIG_FOUND AND NOT LAPACKE_ROOT_DIR)
- 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)
- - LIST(APPEND LAPACKE_LIB ${${PC_LIB}_LIBRARY})
- ENDFOREACH(PC_LIB)
-
- - FIND_PATH(
- - LAPACKE_INCLUDES
- - NAMES "lapacke.h"
- - PATHS
- - ${PC_LAPACKE_INCLUDE_DIRS}
- - ${INCLUDE_INSTALL_DIR}
- - /usr/include
- - /usr/local/include
- - /sw/include
- - /opt/local/include
- - DOC "LAPACKE Include Directory"
- - )
- + set(LAPACKE_LIBRARIES ${PC_LAPACKE_LIBRARIES})
- + set(LAPACKE_LIBRARY_DIRS ${PC_LAPACKE_LIBRARY_DIRS})
-
- - FIND_PACKAGE_HANDLE_STANDARD_ARGS(LAPACKE DEFAULT_MSG LAPACKE_LIB)
- - MARK_AS_ADVANCED(LAPACKE_INCLUDES LAPACKE_LIB)
- + FIND_PATH(LAPACKE_INCLUDE_DIRS NAMES "lapacke.h"
- + PATHS ${PC_LAPACKE_INCLUDE_DIRS})
-
- ELSE(PC_LAPACKE_FOUND)
-
- @@ -97,7 +88,6 @@ ELSE(PC_LAPACKE_FOUND)
- LAPACKE_LIB
- NAMES "lapacke" "liblapacke" "openblas" "mkl_rt"
- PATHS
- - ${PC_LAPACKE_LIBRARY_DIRS}
- ${LIB_INSTALL_DIR}
- /opt/intel/mkl/lib/ia32
- /opt/intel/mkl/lib/intel64
- @@ -113,7 +103,6 @@ ELSE(PC_LAPACKE_FOUND)
- LAPACK_LIB
- NAMES "lapack" "liblapack" "openblas" "mkl_rt"
- PATHS
- - ${PC_LAPACKE_LIBRARY_DIRS}
- ${LIB_INSTALL_DIR}
- /opt/intel/mkl/lib/ia32
- /opt/intel/mkl/lib/intel64
- @@ -129,7 +118,6 @@ ELSE(PC_LAPACKE_FOUND)
- LAPACKE_INCLUDES
- NAMES "lapacke.h" "mkl_lapacke.h"
- PATHS
- - ${PC_LAPACKE_INCLUDE_DIRS}
- ${INCLUDE_INSTALL_DIR}
- /opt/intel/mkl/include
- /usr/include
- @@ -141,17 +129,15 @@ ELSE(PC_LAPACKE_FOUND)
- 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)
-
- -IF(LAPACKE_LIB AND LAPACK_LIB)
- - SET(LAPACK_LIBRARIES ${LAPACKE_LIB} ${LAPACK_LIB})
- -ENDIF()
- -IF(LAPACKE_INCLUDES)
- - SET(LAPACK_INCLUDE_DIR ${LAPACKE_INCLUDES})
- -ENDIF()
- -
- INCLUDE(FindPackageHandleStandardArgs)
- -FIND_PACKAGE_HANDLE_STANDARD_ARGS(LAPACK DEFAULT_MSG
- - LAPACK_INCLUDE_DIR LAPACK_LIBRARIES)
- -
- -MARK_AS_ADVANCED(LAPACK_INCLUDES LAPACK_LIBRARIES)
- +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LAPACKE DEFAULT_MSG
- + LAPACKE_LIBRARIES
- + LAPACKE_INCLUDE_DIRS)
- +MARK_AS_ADVANCED(LAPACKE_LIBRARIES
- + LAPACKE_INCLUDE_DIRS
- + LAPACKE_LIBRARY_DIRS)
- diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt
- index ea57269..efe50a0 100644
- --- a/src/backend/cpu/CMakeLists.txt
- +++ b/src/backend/cpu/CMakeLists.txt
- @@ -55,7 +55,7 @@ MESSAGE(STATUS "FFTW Library: ${FFTW_LIBRARIES}")
-
- IF(APPLE)
- FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
- - IF(NOT LAPACK_FOUND)
- + IF(NOT LAPACKE_FOUND)
- # UNSET THE VARIABLES FROM LAPACKE
- UNSET(LAPACKE_LIB CACHE)
- UNSET(LAPACK_LIB CACHE)
- @@ -67,11 +67,10 @@ ELSE(APPLE) # Linux and Windows
- FIND_PACKAGE(LAPACKE)
- ENDIF(APPLE)
-
- -IF(NOT LAPACK_FOUND)
- - MESSAGE(WARNING "LAPACK not found. Functionality will be disabled")
- -ELSE(NOT LAPACK_FOUND)
- +IF(NOT LAPACKE_FOUND)
- + MESSAGE(WARNING "LAPACKE not found. Functionality will be disabled")
- +ELSE(NOT LAPACKE_FOUND)
- ADD_DEFINITIONS(-DWITH_CPU_LINEAR_ALGEBRA)
- - MESSAGE(STATUS "LAPACK libraries found: ${LAPACK_LIBRARIES}")
- ENDIF()
-
- IF(NOT UNIX)
- @@ -99,8 +98,9 @@ INCLUDE_DIRECTORIES(
- ${CBLAS_INCLUDE_DIR}
- )
-
- -IF(LAPACK_FOUND)
- - INCLUDE_DIRECTORIES(${LAPACK_INCLUDE_DIR})
- +IF(LAPACKE_FOUND)
- + INCLUDE_DIRECTORIES(${LAPACKE_INCLUDE_DIRS})
- + LINK_DIRECTORIES(${LAPACKE_LIBRARY_DIRS})
- ENDIF()
-
- FILE(GLOB cpu_headers
- @@ -213,8 +213,8 @@ IF(FORGE_FOUND AND NOT USE_SYSTEM_FORGE)
- ADD_DEPENDENCIES(afcpu forge)
- ENDIF()
-
- -IF(LAPACK_FOUND)
- - TARGET_LINK_LIBRARIES(afcpu PRIVATE ${LAPACK_LIBRARIES})
- +IF(LAPACKE_FOUND)
- + TARGET_LINK_LIBRARIES(afcpu PRIVATE ${LAPACKE_LIBRARIES})
- ENDIF()
-
- IF(FORGE_FOUND)
- diff --git a/src/backend/cuda/CMakeLists.txt b/src/backend/cuda/CMakeLists.txt
- index 4efb427..24c6544 100644
- --- a/src/backend/cuda/CMakeLists.txt
- +++ b/src/backend/cuda/CMakeLists.txt
- @@ -105,7 +105,7 @@ ELSE(CUDA_cusolver_LIBRARY)
- ## Try to use CPU side lapack
- IF(APPLE)
- FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
- - IF(NOT LAPACK_FOUND)
- + IF(NOT LAPACKE_FOUND)
- # UNSET THE VARIABLES FROM LAPACKE
- UNSET(LAPACKE_LIB CACHE)
- UNSET(LAPACK_LIB CACHE)
- @@ -117,9 +117,9 @@ ELSE(CUDA_cusolver_LIBRARY)
- FIND_PACKAGE(LAPACKE)
- ENDIF(APPLE)
-
- - IF(NOT LAPACK_FOUND)
- + IF(NOT LAPACKE_FOUND)
- MESSAGE(STATUS "CUDA Version ${CUDA_VERSION_STRING} does not contain cusolver library. Linear Algebra will not be available.")
- - ELSE(NOT LAPACK_FOUND)
- + ELSE(NOT LAPACKE_FOUND)
- MESSAGE(STATUS "CUDA Version ${CUDA_VERSION_STRING} does not contain cusolver library. But CPU LAPACK libraries are available. Will fallback to using host side code.")
- ADD_DEFINITIONS(-DWITH_CPU_LINEAR_ALGEBRA)
- IF(USE_CUDA_MKL) # Manual MKL Setup
- @@ -148,7 +148,8 @@ INCLUDE_DIRECTORIES(
- )
-
- IF(CUDA_LAPACK_CPU_FALLBACK)
- - INCLUDE_DIRECTORIES(${LAPACK_INCLUDE_DIR})
- + INCLUDE_DIRECTORIES(${LAPACKE_INCLUDE_DIRS})
- + LINK_DIRECTORIES(${LAPACKE_LIBRARY_DIRS})
- ENDIF()
-
- FILE(GLOB cuda_headers
- @@ -379,7 +380,7 @@ ENDIF()
- IF(CUDA_cusolver_LIBRARY)
- TARGET_LINK_LIBRARIES(afcuda PRIVATE ${CUDA_cusolver_LIBRARY})
- ELSEIF(CUDA_LAPACK_CPU_FALLBACK)
- - TARGET_LINK_LIBRARIES(afcuda PRIVATE ${LAPACK_LIBRARIES})
- + TARGET_LINK_LIBRARIES(afcuda PRIVATE ${LAPACKE_LIBRARIES})
- ENDIF()
-
- SET_TARGET_PROPERTIES(afcuda PROPERTIES
- diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt
- index 71247ce..ded53bf 100644
- --- a/src/backend/opencl/CMakeLists.txt
- +++ b/src/backend/opencl/CMakeLists.txt
- @@ -12,7 +12,7 @@ ENDIF()
-
- IF(APPLE)
- FIND_PACKAGE(LAPACKE QUIET) # For finding MKL
- - IF(NOT LAPACK_FOUND)
- + IF(NOT LAPACKE_FOUND)
- # UNSET THE VARIABLES FROM LAPACKE
- UNSET(LAPACKE_LIB CACHE)
- UNSET(LAPACK_LIB CACHE)
- @@ -24,9 +24,9 @@ ELSE(APPLE) # Linux and Windows
- FIND_PACKAGE(LAPACKE)
- ENDIF(APPLE)
-
- -IF(NOT LAPACK_FOUND)
- - MESSAGE(WARNING "LAPACK not found. Functionality will be disabled")
- -ELSE(NOT LAPACK_FOUND)
- +IF(NOT LAPACKE_FOUND)
- + MESSAGE(WARNING "LAPACKE not found. Functionality will be disabled")
- +ELSE(NOT LAPACKE_FOUND)
- ADD_DEFINITIONS(-DWITH_OPENCL_LINEAR_ALGEBRA)
-
- IF(NOT USE_OPENCL_MKL)
- @@ -105,8 +105,9 @@ INCLUDE_DIRECTORIES(
- ${BoostCompute_INCLUDE_DIRS}
- ${CBLAS_INCLUDE_DIR}
- )
- -IF(LAPACK_FOUND)
- - INCLUDE_DIRECTORIES(${LAPACK_INCLUDE_DIR})
- +IF(LAPACKE_FOUND)
- + INCLUDE_DIRECTORIES(${LAPACKE_INCLUDE_DIRS})
- + LINK_DIRECTORIES(${LAPACKE_LIBRARY_DIRS})
- ENDIF()
-
- FILE(GLOB opencl_headers
- @@ -163,7 +164,7 @@ source_group(backend\\opencl\\kernel\\convolve\\Sources FILES ${conv_ker_sources
- source_group(backend\\opencl\\cpu\\Headers FILES ${cpu_headers})
- source_group(backend\\opencl\\cpu\\Sources FILES ${cpu_sources})
-
- -IF(LAPACK_FOUND)
- +IF(LAPACKE_FOUND)
- FILE(GLOB magma_sources
- "magma/*.cpp")
-
- @@ -313,9 +314,9 @@ IF(FORGE_FOUND AND NOT USE_SYSTEM_FORGE)
- ADD_DEPENDENCIES(afopencl forge)
- ENDIF()
-
- -IF(LAPACK_FOUND)
- +IF(LAPACKE_FOUND)
- TARGET_LINK_LIBRARIES(afopencl
- - PRIVATE ${LAPACK_LIBRARIES}
- + PRIVATE ${LAPACKE_LIBRARIES}
- PRIVATE ${CBLAS_LIBRARIES})
- ENDIF()
-
|