]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
Modify cmake for tbb include/lib files.
authoralekcac <alekcac@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Mon, 5 Apr 2010 16:36:51 +0000 (16:36 +0000)
committeralekcac <alekcac@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Mon, 5 Apr 2010 16:36:51 +0000 (16:36 +0000)
git-svn-id: https://code.ros.org/svn/opencv/trunk@2990 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/CMakeLists.txt

index a683acff831f73ad70066dd8978820a72a2ada42..c85938284ad9019a36a89e4118ea9c72440accc7 100644 (file)
@@ -501,34 +501,89 @@ endif()
 ############################### TBB ################################\r
 \r
 if (WITH_TBB)\r
-    if (WIN32 OR APPLE)\r
-        find_path(TBB_INCLUDE_DIRS "tbb/tbb.h"\r
-                    PATHS "/usr/include" "/usr/local/include"\r
-                    DOC "The path to TBB headers")\r
-        \r
-        if (TBB_INCLUDE_DIRS)\r
-            if (WIN32)\r
-                set(TBB_LIB "${TBB_INCLUDE_DIRS}/../lib/tbb.lib" CACHE PATH "Full name of TBB library")\r
-            else()\r
-                set(TBB_LIB "${TBB_INCLUDE_DIRS}/../lib/libtbb.dylib" CACHE PATH "Full name of TBB library")\r
-            endif()\r
-            set(HAVE_TBB 1)\r
-            include_directories("${TBB_INCLUDE_DIRS}")\r
-            set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${TBB_LIB})\r
-        endif()\r
-    else()\r
+    if (UNIX AND NOT APPLE)\r
         PKG_CHECK_MODULES(TBB tbb)\r
         message(STATUS "TBB detected: ${TBBLIB_FOUND}")\r
-\r
-        if (TBB_FOUND)\r
+            \r
+        if (TBB_FOUND) \r
             set(HAVE_TBB 1)\r
-\r
             if(NOT "${TBB_INCLUDE_DIRS}" STREQUAL "")\r
                 include_directories("${TBB_INCLUDE_DIRS}")\r
             endif()\r
-\r
             link_directories("${TBB_LIBRARY_DIRS}")\r
             set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${TBB_LIBRARIES})\r
+        else()\r
+            set(TBB_DEFAULT_INCLUDE_DIRS\r
+              "/opt/intel/tbb"\r
+              "/usr/local/include"\r
+              "/usr/include")  \r
+        endif()\r
+    endif()        \r
+    if (APPLE)\r
+        set(TBB_DEFAULT_INCLUDE_DIRS\r
+          "/usr/include"\r
+          "/usr/local/include")  \r
+    endif() \r
+    if (WIN32)\r
+        set(TBB_DEFAULT_INCLUDE_DIRS\r
+          "C:/Program Files/Intel/TBB"\r
+          "C:/Program Files (x86)/Intel/TBB")     \r
+    endif()    \r
+    if (NOT HAVE_TBB)\r
+        find_path(TBB_INCLUDE_DIR "tbb/tbb.h"\r
+                  PATHS TBB_DEFAULT_INCLUDE_DIRS\r
+                  DOC "The path to TBB headers")\r
+        if (TBB_INCLUDE_DIR)\r
+            if (UNIX)\r
+                set(TBB_LIB_DIR "${TBB_INCLUDE_DIR}/../lib" CACHE PATH "Full path of TBB library directory")\r
+                link_directories("${TBB_LIB_DIR}")\r
+            endif()\r
+            if (APPLE)\r
+                set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} libtbb.dylib)\r
+            elseif (UNIX)\r
+                set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)\r
+            elseif (WIN32)\r
+               if (CMAKE_COMPILER_IS_GNUCXX)\r
+                   set(TBB_LIB_DIR "${TBB_INCLUDE_DIR}/../lib" CACHE PATH "Full path of TBB library directory")\r
+                   link_directories("${TBB_LIB_DIR}")\r
+                   set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb)\r
+               else()\r
+                   if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*)\r
+                       set(X86_64 1)\r
+                   endif()\r
+                   if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*)\r
+                       set(X86_64 1)\r
+                   endif()\r
+                   if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*)\r
+                       set(X86 1)\r
+                   endif()\r
+                   if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i386*)\r
+                       set(X86 1)\r
+                   endif()\r
+                   if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*)\r
+                       set(X86 1)\r
+                   endif()\r
+                   \r
+                   set(_TBB_LIB_PATH "${TBB_INCLUDE_DIR}/../lib")\r
+                   if (X86_64)\r
+                       set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/intel64")\r
+                   elseif(X86)\r
+                       set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/ia32")\r
+                   endif()\r
+                   if (MSVC80)\r
+                       set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc8")\r
+                   elseif(MSVC90)\r
+                       set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc9")\r
+                   endif()\r
+                   set(TBB_LIB_DIR "${_TBB_LIB_PATH}" CACHE PATH "Full path of TBB library directory")\r
+                   link_directories("${TBB_LIB_DIR}")\r
+               endif()\r
+            endif()\r
+            \r
+            set(HAVE_TBB 1)\r
+            if(NOT "${TBB_INCLUDE_DIR}" STREQUAL "")\r
+                include_directories("${TBB_INCLUDE_DIR}")\r
+            endif()\r
         endif()\r
     endif()\r
 endif()\r