FindTBB
FindTBB copied to clipboard
CMake find module for Intel Threading Building Blocks
FindTBB Module
FindTBB is a CMake find package module for Intel® Threading Building Blocks (TBB).
Usage
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.
Example Project
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})
User Variables
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, wheremay 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
FindTBB Results
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, optionalpart of TBB sytem is not available. -
TBB_VERSION
- The full version string -
TBB_VERSION_MAJOR
- The major version -
TBB_VERSION_MINOR
- The minor version -
TBB_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.
Output Variables
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.