31a0de1ddbc7b5ccf6f2bea0b2902d0a0ec5603c
[m6w6/libmemcached] / CMake / CheckTbb.cmake
1 macro(CHECK_TBB)
2 check_header(execution)
3 # TBBConfig only sets TBB_FOUND to FALSE
4 if(HAVE_EXECUTION)
5 check_dependency(LIBTBB tbb tbb/task.h)
6 if(HAVE_LIBTBB)
7 cmake_push_check_state(RESET)
8 get_property(LIBTBB_INCLUDEDIR TARGET ${LIBTBB} PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
9 get_property(LIBTBB_LIBRARIES TARGET ${LIBTBB} PROPERTY INTERFACE_LINK_LIBRARIES)
10 set(CMAKE_REQUIRED_INCLUDES "${LIBTBB_INCLUDEDIR}")
11 set(CMAKE_REQUIRED_LIBRARIES "${LIBTBB_LIBRARIES}")
12 set(CMAKE_REQUIRED_FLAGS -std=c++17)
13 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)
14 cmake_pop_check_state(RESET)
15 endif()
16 endif()
17 endmacro()