set(tbb_VERSION 2020.3-5.oe2203sp1)
if (NOT "$ENV{DS_LOCAL_LIBS_DIR}" STREQUAL "")
  set(tbb_URL "$ENV{DS_LOCAL_LIBS_DIR}/opensource_third_party/v2020.3.zip")
else()
  set(tbb_URL "https://gitee.com/mirrors/tbb/repository/archive/v2020.3.zip")
endif()
set(tbb_SHA256 "58654b47f145e619cddfdd1fdf2dd36b6db85d7e644bce8f2b278eed8b1b28b7")

if ("${tbb_VERSION}" STREQUAL "2021.5.0")
  set(tbb_TOOLCHAIN "cmake")
else ()
  set(tbb_TOOLCHAIN "make")
endif ()

string(FIND "${tbb_VERSION}" "2020.3" tbb_need_patch)
if (NOT found EQUAL -1)
  set(tbb_PATCHES
    ${CMAKE_SOURCE_DIR}/third_party/patches/tbb/2020.3/soft-link.patch
    ${CMAKE_SOURCE_DIR}/third_party/patches/tbb/2020.3/adapt-task.h-to-gcc-14.patch)
endif ()

set(tbb_CMAKE_OPTIONS
    -DTBB_TEST:BOOL=OFF
    -DCMAKE_BUILD_TYPE:STRING=Release)

set(tbb_CXX_FLAGS ${THIRDPARTY_SAFE_FLAGS})

set(tbb_LINK_FLAGS "-Wl,-z,relro,-z,now")

add_thirdparty_lib(TBB 
  URL ${tbb_URL}
  SHA256 ${tbb_SHA256}
  FAKE_SHA256 ${tbb_FAKE_SHA256}
  VERSION ${tbb_VERSION}
  CONF_OPTIONS ${tbb_CMAKE_OPTIONS}
  CXX_FLAGS ${tbb_CXX_FLAGS}
  LINK_FLAGS ${tbb_LINK_FLAGS}
  TOOLCHAIN ${tbb_TOOLCHAIN}
  PATCHES ${tbb_PATCHES})

set(TBB_DIR ${TBB_ROOT})
find_package(TBB REQUIRED)

if (EXISTS "${TBB_INCLUDE_DIR}/oneapi/tbb/version.h")
  file(STRINGS
    "${TBB_INCLUDE_DIR}/oneapi/tbb/version.h"
    TBB_VERSION_CONTENTS
    REGEX "VERSION")
else()
  #only read the start of the file
  file(STRINGS
    "${TBB_INCLUDE_DIR}/tbb/tbb_stddef.h"
    TBB_VERSION_CONTENTS
    REGEX "VERSION")
endif()

string(REGEX REPLACE
      ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1"
      TBB_INTERFACE_VERSION "${TBB_VERSION_CONTENTS}")
  
add_compile_definitions(TBB_INTERFACE_VERSION=${TBB_INTERFACE_VERSION})
include_directories(SYSTEM ${TBB_INCLUDE_DIR})