FindTBB is a CMake find package module for Intel® Threading Building Blocks (TBB).
The signature of the TBB find module in CMake is:
find_package(TBB [major[.minor]] [EXACT] [QUIET] [REQUIRED]
[COMPONENTS [tbbmalloc] [tbbmalloc_proxy] [tbb_preview]]
[OPTIONAL_COMPONENTS [tbbmalloc] [tbbmalloc_proxy] [tbb_preview]])
where the allowed components are tbbmalloc and tbb_preview.
With CMake 3.0 and later
cmake_minimum_required(VERSION 3.0)
project(MyProject)
list(APPEND CMAKE_MODULE_PATH "<path to FindTBB module>")
find_package(TBB COMPONENTS tbbmalloc tbbmalloc_proxy tbb_preview)
add_executable(myapp myapp.cc)
target_link_libraries(myapp tbb)
With CMake 2.8 and earlier
cmake_minimum_required(VERSION 2.8)
project(MyProject)
list(APPEND CMAKE_MODULE_PATH "<path to FindTBB module>")
find_package(TBB COMPONENTS tbbmalloc tbbmalloc_proxy tbb_preview)
add_executable(myapp myapp)
target_include_directories(myapp PRIVATE ${TBB_INCLUDE_DIRS})
target_compile_definitions(myapp PRIVATE ${TBB_DEFINITIONS})
target_link_libraries(myapp ${TBB_LIBRARIES})
The following varibiles may be used by the user to specify the install, include, and/or library directories of TBB.
TBB_ROOT_DIR
- The base directory the of TBB installation.TBB_INCLUDE_DIR
- The directory that contains the TBB headers files.TBB_LIBRARY
- The directory that contains the TBB library files.TBB_<library>_LIBRARY
- The path of the corresponding TBB library. These libraries, if specified, override the corresponding library search results, where may be tbb, tbb_debug, tbbmalloc, tbbmalloc_debug, tbb_preview, or tbb_preview_debug.TBB_USE_DEBUG_BUILD
- The debug version of tbb libraries, if present, will be used instead of the release version.
In addition, FindTBB uses the following environment variables to find the TBB install directory.
TBB_INSTALL_DIR
TBBROOT
LIBRARY_PATH
This module will set the following variables:
TBB_FOUND
- Set to false, or undefined, if we haven’t found, or don’t want to use TBB.TBB_<component>_FOUND
- If False, optional part of TBB sytem is not available.TBB_VERSION
- The full version stringTBB_VERSION_MAJOR
- The major versionTBB_VERSION_MINOR
- The minor versionTBB_INTERFACE_VERSION
- The interface version number defined in tbb/tbb_stddef.h.TBB_<library>_LIBRARY_RELEASE
- The path of the TBB release version of , where may be tbb, tbb_debug, tbbmalloc, tbbmalloc_proxy, or tbb_preview.TBB_<library>_LIBRARY_DEGUG
- The path of the TBB release version of , where may be tbb_debug, tbbmalloc_debug, tbbmalloc_proxy_debug, or tbb_preview_debug.
The following varibles should be used to link executables and libraries with TBB:
TBB_INCLUDE_DIRS
- The include directory for TBB.TBB_LIBRARIES
- The libraries to link against to use TBB.TBB_LIBRARIES_RELEASE
- The release libraries to link against to use TBB.TBB_LIBRARIES_DEBUG
- The debug libraries to link against to use TBB.TBB_DEFINITIONS
- Definitions to use when compiling code that uses TBB.TBB_DEFINITIONS_RELEASE
- Definitions to use when compiling release code that uses TBB.TBB_DEFINITIONS_DEBUG
- Definitions to use when compiling debug code that uses TBB.