From 7f77f8f35a9271a306bcae548d4a9d8f79e74672 Mon Sep 17 00:00:00 2001 From: Anatoly Baksheev Date: Fri, 1 Apr 2011 19:19:03 +0000 Subject: [PATCH] tbb search improvement --- CMakeLists.txt | 106 +++++++++++++++++++++------------------------------------ 1 file changed, 39 insertions(+), 67 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e89db9c..ae1b220 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -615,28 +615,14 @@ if (WITH_TBB) include_directories(${TBB_INCLUDE_DIRS}) endif() link_directories(${TBB_LIBRARY_DIRS}) - set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${TBB_LIBRARIES}) - else() - set(TBB_DEFAULT_INCLUDE_DIRS - "/opt/intel/tbb" - "/usr/local/include" - "/usr/include") + set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${TBB_LIBRARIES}) endif() - endif() - if (APPLE) - set(TBB_DEFAULT_INCLUDE_DIRS - "/usr/local/include" - "/usr/include") - endif() - if (WIN32) - set(TBB_DEFAULT_INCLUDE_DIRS - "C:/Program Files/Intel/TBB" - "C:/Program Files (x86)/Intel/TBB") - endif() + endif() + if (NOT HAVE_TBB) - find_path(TBB_INCLUDE_DIR "tbb/tbb.h" - PATHS TBB_DEFAULT_INCLUDE_DIRS - DOC "The path to TBB headers") + set(TBB_DEFAULT_INCLUDE_DIRS "/opt/intel/tbb" "/usr/local/include" "/usr/include" "C:/Program Files/Intel/TBB" "C:/Program Files (x86)/Intel/TBB") + + find_path(TBB_INCLUDE_DIR "tbb/tbb.h" PATHS ${TBB_DEFAULT_INCLUDE_DIRS} DOC "The path to TBB headers") if (TBB_INCLUDE_DIR) if (UNIX) set(TBB_LIB_DIR "${TBB_INCLUDE_DIR}/../lib" CACHE PATH "Full path of TBB library directory") @@ -647,53 +633,39 @@ if (WITH_TBB) elseif (UNIX) set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb) elseif (WIN32) - if (CMAKE_COMPILER_IS_GNUCXX) - set(TBB_LIB_DIR "${TBB_INCLUDE_DIR}/../lib" CACHE PATH "Full path of TBB library directory") - link_directories("${TBB_LIB_DIR}") - set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb) - else() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*) - set(X86_64 1) - endif() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*) - set(X86_64 1) - endif() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686*) - set(X86 1) - endif() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i386*) - set(X86 1) - endif() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*) - set(X86 1) - endif() - - set(_TBB_LIB_PATH "${TBB_INCLUDE_DIR}/../lib") - if (X86_64) - set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/intel64") - elseif(X86) - set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/ia32") - endif() - if (MSVC80) - set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc8") - elseif(MSVC90) - set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc9") - endif() - elseif(MSVC10) - set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc10") - endif() - set(TBB_LIB_DIR "${_TBB_LIB_PATH}" CACHE PATH "Full path of TBB library directory") - link_directories("${TBB_LIB_DIR}") - endif() - endif() - - set(HAVE_TBB 1) - if(NOT "${TBB_INCLUDE_DIR}" STREQUAL "") - include_directories("${TBB_INCLUDE_DIR}") - endif() - endif() - endif() -#endif(WITH_TBB) + if (CMAKE_COMPILER_IS_GNUCXX) + set(TBB_LIB_DIR "${TBB_INCLUDE_DIR}/../lib" CACHE PATH "Full path of TBB library directory") + link_directories("${TBB_LIB_DIR}") + set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb) + else() + get_filename_component(_TBB_LIB_PATH "${TBB_INCLUDE_DIR}/../lib" ABSOLUTE) + + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*|x86_64*) + set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/intel64") + endif() + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86*|i386*|i686*) + set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/ia32") + endif() + + if (MSVC80) + set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc8") + elseif(MSVC90) + set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc9") + elseif(MSVC10) + set(_TBB_LIB_PATH "${_TBB_LIB_PATH}/vc10") + endif() + set(TBB_LIB_DIR "${_TBB_LIB_PATH}" CACHE PATH "Full path of TBB library directory") + link_directories("${TBB_LIB_DIR}") + endif() + endif() + + set(HAVE_TBB 1) + if(NOT "${TBB_INCLUDE_DIR}" STREQUAL "") + include_directories("${TBB_INCLUDE_DIR}") + endif() + endif() + endif() +endif(WITH_TBB) ############################ Intel IPP ############################# -- 2.7.4