cmake: update OpenBLAS support
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Fri, 27 Oct 2017 23:22:21 +0000 (02:22 +0300)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 28 Oct 2017 07:17:37 +0000 (10:17 +0300)
- reorder path HINTS to avoid conflicts with other LAPACK libraries
- add extern "C" { } to avoid generation of C++ symbols

cmake/OpenCVFindLAPACK.cmake
cmake/OpenCVFindOpenBLAS.cmake

index 6a686c6..f5fce67 100644 (file)
@@ -31,10 +31,11 @@ macro(ocv_lapack_check)
   else()
     # adding proxy opencv_lapack.h header
     set(CBLAS_H_PROXY_PATH ${CMAKE_BINARY_DIR}/opencv_lapack.h)
-    set(_lapack_include_str "\#include \"${OPENCV_CBLAS_H_PATH_${_lapack_impl}}\"")
+    set(_lapack_include_str "extern \"C\" {\n\#include \"${OPENCV_CBLAS_H_PATH_${_lapack_impl}}\"")
     if(NOT "${OPENCV_CBLAS_H_PATH_${_lapack_impl}}" STREQUAL "${OPENCV_LAPACKE_H_PATH_${_lapack_impl}}")
       set(_lapack_include_str "${_lapack_include_str}\n#include \"${OPENCV_LAPACKE_H_PATH_${_lapack_impl}}\"")
     endif()
+    set(_lapack_include_str "${_lapack_include_str}\n}\n")
     # update file contents (if required)
     set(__content_str "")
     if(EXISTS "${CBLAS_H_PROXY_PATH}")
index 60594de..ae2daaa 100644 (file)
 #license and copyright terms herein.
 
 SET(Open_BLAS_INCLUDE_SEARCH_PATHS
-  /usr/include
+  $ENV{OpenBLAS_HOME}
+  $ENV{OpenBLAS_HOME}/include
+  /opt/OpenBLAS/include
+  /usr/local/include/openblas
   /usr/include/openblas
+  /usr/local/include/openblas-base
   /usr/include/openblas-base
   /usr/local/include
-  /usr/local/include/openblas
-  /usr/local/include/openblas-base
-  /opt/OpenBLAS/include
-  $ENV{OpenBLAS_HOME}
-  $ENV{OpenBLAS_HOME}/include
+  /usr/include
 )
 
 SET(Open_BLAS_LIB_SEARCH_PATHS
-        /lib/
-        /lib/openblas-base
-        /lib64/
-        /usr/lib
-        /usr/lib/openblas-base
-        /usr/lib64
-        /usr/local/lib
-        /usr/local/lib64
-        /opt/OpenBLAS/lib
         $ENV{OpenBLAS}cd
         $ENV{OpenBLAS}/lib
         $ENV{OpenBLAS_HOME}
         $ENV{OpenBLAS_HOME}/lib
+        /opt/OpenBLAS/lib
+        /usr/local/lib64
+        /usr/local/lib
+        /lib/openblas-base
+        /lib64/
+        /lib/
+        /usr/lib/openblas-base
+        /usr/lib64
+        /usr/lib
  )
 
-FIND_PATH(OpenBLAS_INCLUDE_DIR NAMES cblas.h PATHS ${Open_BLAS_INCLUDE_SEARCH_PATHS})
-FIND_LIBRARY(OpenBLAS_LIB NAMES openblas PATHS ${Open_BLAS_LIB_SEARCH_PATHS})
+FIND_PATH(OpenBLAS_INCLUDE_DIR NAMES cblas.h PATHS ${Open_BLAS_INCLUDE_SEARCH_PATHS} NO_DEFAULT_PATH)
+FIND_LIBRARY(OpenBLAS_LIB NAMES openblas PATHS ${Open_BLAS_LIB_SEARCH_PATHS}  NO_DEFAULT_PATH)
 
 SET(OpenBLAS_FOUND ON)