diff options
Diffstat (limited to 'cryptominisat5/cryptominisat-5.6.3/cmake/FindTBB.cmake')
-rw-r--r-- | cryptominisat5/cryptominisat-5.6.3/cmake/FindTBB.cmake | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/cryptominisat5/cryptominisat-5.6.3/cmake/FindTBB.cmake b/cryptominisat5/cryptominisat-5.6.3/cmake/FindTBB.cmake new file mode 100644 index 000000000..beb7f7b86 --- /dev/null +++ b/cryptominisat5/cryptominisat-5.6.3/cmake/FindTBB.cmake @@ -0,0 +1,111 @@ +#------------------------------------------------------------------- +# This file is part of the CMake build system for OGRE +# (Object-oriented Graphics Rendering Engine) +# For the latest info, see http://www.ogre3d.org/ +# +# The contents of this file are placed in the public domain. Feel +# free to make use of it in any way you like. +#------------------------------------------------------------------- + +# - Try to find ThreadingBuildingBlocks libraries +# Once done, this will define +# +# TBB_FOUND - system has TBB +# TBB_INCLUDE_DIRS - the TBB include directories +# TBB_LIBRARIES - link these to use TBB + +include(FindPkgMacros) +findpkg_begin(TBB) + +# Get path, convert backslashes as ${ENV_${var}} +getenv_path(TBB_HOME) +getenv_path(TBB_ROOT) +getenv_path(TBB_BASE) + +# construct search paths +set(TBB_PREFIX_PATH + ${TBB_HOME} ${ENV_TBB_HOME} + ${TBB_ROOT} ${ENV_TBB_ROOT} + ${TBB_BASE} ${ENV_TBB_BASE} +) +# redo search if prefix path changed +clear_if_changed(TBB_PREFIX_PATH + TBB_LIBRARY_FWK + TBB_LIBRARY_REL + TBB_LIBRARY_DBG + TBB_INCLUDE_DIR +) + +create_search_paths(TBB) +set(TBB_INC_SEARCH_PATH ${TBB_INC_SEARCH_PATH} ${TBB_PREFIX_PATH}) + +# For Windows, let's assume that the user might be using the precompiled +# TBB packages from the main website. These use a rather awkward directory +# structure (at least for automatically finding the right files) depending +# on platform and compiler, but we'll do our best to accomodate it. +# Not adding the same effort for the precompiled linux builds, though. Those +# have different versions for CC compiler versions and linux kernels which +# will never adequately match the user's setup, so there is no feasible way +# to detect the "best" version to use. The user will have to manually +# select the right files. (Chances are the distributions are shipping their +# custom version of tbb, anyway, so the problem is probably nonexistant.) +if (WIN32) + set(COMPILER_PREFIX "vc7.1") + if (MSVC80) + set(COMPILER_PREFIX "vc8") + endif () + if (MSVC90) + set(COMPILER_PREFIX "vc9") + endif () + + # for each prefix path, add ia32/64\${COMPILER_PREFIX}\lib to the lib search path + foreach (dir ${TBB_PREFIX_PATH}) + if (CMAKE_CL_64) + list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia64/${COMPILER_PREFIX}/lib) + list(APPEND TBB_LIB_SEARCH_PATH ${dir}/intel64/${COMPILER_PREFIX}/lib) + else () + list(APPEND TBB_LIB_SEARCH_PATH ${dir}/ia32/${COMPILER_PREFIX}/lib) + endif () + endforeach () +endif () + + + +set(TBB_LIBRARY_NAMES tbb) +get_debug_names(TBB_LIBRARY_NAMES) + +# use_pkgconfig(TBB_PKGC TBB) + +findpkg_framework(TBB) + +find_path(TBB_INCLUDE_DIR NAMES tbb/tbb.h HINTS ${TBB_INC_SEARCH_PATH} ${TBB_PKGC_INCLUDE_DIRS}) +find_library(TBB_LIBRARY_REL NAMES ${TBB_LIBRARY_NAMES} HINTS ${TBB_LIB_SEARCH_PATH} ${TBB_PKGC_LIBRARY_DIRS}) +find_library(TBB_LIBRARY_DBG NAMES ${TBB_LIBRARY_NAMES_DBG} HINTS ${TBB_LIB_SEARCH_PATH} ${TBB_PKGC_LIBRARY_DIRS}) +make_library_set(TBB_LIBRARY) + +findpkg_finish(TBB) + +if (NOT TBB_FOUND) + return() +endif () + + +# Look for TBB's malloc package +findpkg_begin(TBB_MALLOC) +set(TBB_MALLOC_LIBRARY_NAMES tbbmalloc) +get_debug_names(TBB_MALLOC_LIBRARY_NAMES) +find_path(TBB_MALLOC_INCLUDE_DIR NAMES tbb/tbb.h HINTS ${TBB_INCLUDE_DIR} ${TBB_INC_SEARCH_PATH} ${TBB_PKGC_INCLUDE_DIRS} ) +find_library(TBB_MALLOC_LIBRARY_REL NAMES ${TBB_MALLOC_LIBRARY_NAMES} HINTS ${TBB_LIB_SEARCH_PATH} ${TBB_PKGC_LIBRARY_DIRS} ) +find_library(TBB_MALLOC_LIBRARY_DBG NAMES ${TBB_MALLOC_LIBRARY_NAMES_DBG} HINTS ${TBB_LIB_SEARCH_PATH} ${TBB_PKGC_LIBRARY_DIRS} ) +make_library_set(TBB_MALLOC_LIBRARY) +findpkg_finish(TBB_MALLOC) + +# Look for TBB's malloc proxy package +findpkg_begin(TBB_MALLOC_PROXY) +set(TBB_MALLOC_PROXY_LIBRARY_NAMES tbbmalloc_proxy) +get_debug_names(TBB_MALLOC_PROXY_LIBRARY_NAMES) +find_path(TBB_MALLOC_PROXY_INCLUDE_DIR NAMES tbb/tbbmalloc_proxy.h HINTS ${TBB_INCLUDE_DIR} ${TBB_INC_SEARCH_PATH} ${TBB_PKGC_INCLUDE_DIRS}) +find_library(TBB_MALLOC_PROXY_LIBRARY_REL NAMES ${TBB_MALLOC_PROXY_LIBRARY_NAMES} HINTS ${TBB_LIB_SEARCH_PATH} ${TBB_PKGC_LIBRARY_DIRS}) +find_library(TBB_MALLOC_PROXY_LIBRARY_DBG NAMES ${TBB_MALLOC_PROXY_LIBRARY_NAMES_DBG} HINTS ${TBB_LIB_SEARCH_PATH} ${TBB_PKGC_LIBRARY_DIRS}) +make_library_set(TBB_MALLOC_PROXY_LIBRARY) +findpkg_finish(TBB_MALLOC_PROXY) |