-function(CHECK_TBB)
+macro(CHECK_TBB)
check_header(execution)
# TBBConfig only sets TBB_FOUND to FALSE
if(HAVE_EXECUTION)
check_dependency(LIBTBB tbb tbb/task.h)
if(HAVE_LIBTBB)
cmake_push_check_state(RESET)
- get_property(LIBTBB_INCLUDEDIR TARGET LIBTBB PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
- get_property(LIBTBB_LIBRARIES TARGET LIBTBB PROPERTY INTERFACE_LINK_LIBRARIES)
+ get_property(LIBTBB_INCLUDEDIR TARGET ${LIBTBB} PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
+ get_property(LIBTBB_LIBRARIES TARGET ${LIBTBB} PROPERTY INTERFACE_LINK_LIBRARIES)
set(CMAKE_REQUIRED_INCLUDES "${LIBTBB_INCLUDEDIR}")
set(CMAKE_REQUIRED_LIBRARIES "${LIBTBB_LIBRARIES}")
set(CMAKE_REQUIRED_FLAGS -std=c++17)
check_compiles(HAVE_TBB "std::vector<char> a={1,2,3}; std::all_of(std::execution::par,a.begin(),a.end(),[](char i){return i>0;});" vector algorithm execution)
cmake_pop_check_state(RESET)
- if(HAVE_TBB)
- set(HAVE_LIBTBB 1 PARENT_SCOPE)
- endif()
endif()
endif()
-endfunction()
+endmacro()