fixed OpenCVConfig for cross-compilation:
authorVladislav Vinogradov <vlad.vinogradov@itseez.com>
Wed, 27 Feb 2013 10:39:28 +0000 (14:39 +0400)
committerVladislav Vinogradov <vlad.vinogradov@itseez.com>
Thu, 28 Feb 2013 06:33:05 +0000 (10:33 +0400)
* added CUDA to EXTRA libs if OpenCV uses it
* added -rpath-link option for linker if OpenCV was built as SHARED libs

cmake/templates/OpenCVConfig.cmake.in

index 235c72b8dc0b1cee015bacfb6cdaa5cedc298066..ea331febf191d04298607fe8e2a7cc4fe6479f3b 100644 (file)
@@ -221,7 +221,7 @@ foreach(__opttype OPT DBG)
   endif()
 
   # CUDA
-  if(OpenCV_CUDA_VERSION AND WIN32 AND NOT OpenCV_SHARED)
+  if(OpenCV_CUDA_VERSION AND (CMAKE_CROSSCOMPILING OR (WIN32 AND NOT OpenCV_SHARED)))
     if(NOT CUDA_FOUND)
       find_package(CUDA ${OpenCV_CUDA_VERSION} EXACT REQUIRED)
     else()
@@ -304,3 +304,11 @@ else()
   SET(OpenCV_LIB_DIR ${OpenCV_LIB_DIR_OPT} ${OpenCV_3RDPARTY_LIB_DIR_OPT})
 endif()
 set(OpenCV_LIBRARIES ${OpenCV_LIBS})
+
+if(CMAKE_CROSSCOMPILING AND OpenCV_SHARED AND (CMAKE_SYSTEM_NAME MATCHES "Linux"))
+  foreach(dir ${OpenCV_LIB_DIR})
+    set(CMAKE_EXE_LINKER_FLAGS    "${CMAKE_EXE_LINKER_FLAGS}    -Wl,-rpath-link,${dir}")
+    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath-link,${dir}")
+    set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-rpath-link,${dir}")
+  endforeach()
+endif()