forked from OSchip/llvm-project
67 lines
2.7 KiB
CMake
67 lines
2.7 KiB
CMake
#===-- FindTBB.cmake -----------------------------------------------------===##
|
|
#
|
|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
# See https://llvm.org/LICENSE.txt for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
#
|
|
#===----------------------------------------------------------------------===##
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
if (NOT TBB_FIND_COMPONENTS)
|
|
set(TBB_FIND_COMPONENTS tbb tbbmalloc)
|
|
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
|
|
set(TBB_FIND_REQUIRED_${_tbb_component} 1)
|
|
endforeach()
|
|
endif()
|
|
|
|
find_path(_tbb_include_dir tbb/tbb.h)
|
|
if (_tbb_include_dir)
|
|
file(READ "${_tbb_include_dir}/tbb/tbb_stddef.h" _tbb_stddef LIMIT 2048)
|
|
string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}")
|
|
string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}")
|
|
string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}")
|
|
|
|
set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
|
|
|
|
unset(_tbb_stddef)
|
|
unset(_tbb_ver_major)
|
|
unset(_tbb_ver_minor)
|
|
|
|
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
|
|
find_library(_tbb_release_lib ${_tbb_component})
|
|
if (_tbb_release_lib)
|
|
set(TBB_${_tbb_component}_FOUND 1)
|
|
|
|
add_library(TBB::${_tbb_component} SHARED IMPORTED)
|
|
list(APPEND TBB_IMPORTED_TARGETS TBB::${_tbb_component})
|
|
|
|
set(_tbb_lib_suffix)
|
|
if (UNIX AND NOT APPLE)
|
|
set(_tbb_lib_suffix ".2")
|
|
endif()
|
|
|
|
set_target_properties(TBB::${_tbb_component} PROPERTIES
|
|
IMPORTED_CONFIGURATIONS "RELEASE"
|
|
IMPORTED_LOCATION_RELEASE "${_tbb_release_lib}${_tbb_lib_suffix}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${_tbb_include_dir}")
|
|
|
|
find_library(_tbb_debug_lib ${_tbb_component}_debug)
|
|
if (_tbb_debug_lib)
|
|
set_target_properties(TBB::${_tbb_component} PROPERTIES
|
|
IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
|
|
IMPORTED_LOCATION_DEBUG "${_tbb_debug_lib}${_tbb_lib_suffix}")
|
|
endif()
|
|
unset(_tbb_debug_lib CACHE)
|
|
unset(_tbb_lib_suffix)
|
|
endif()
|
|
unset(_tbb_release_lib CACHE)
|
|
endforeach()
|
|
endif()
|
|
unset(_tbb_include_dir CACHE)
|
|
|
|
find_package_handle_standard_args(TBB
|
|
REQUIRED_VARS TBB_IMPORTED_TARGETS
|
|
HANDLE_COMPONENTS
|
|
VERSION_VAR TBB_VERSION)
|