project(tbb CXX)

option(DISABLE_EXCEPTIONS "Set exceptions=0 for make to turn off exception support in TBB" OFF)
file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*)
file(COPY ${SOURCES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/src)

include(${CMAKE_CURRENT_BINARY_DIR}/src/cmake/TBBBuild.cmake REQUIRED)
if(DISABLE_EXCEPTIONS)
    set(DISABLE_EXCEPTIONS_ARG exceptions=0)
endif()
if(NOT BUILD_SHARED_LIBS)
    set(TBB_STATIC_INCLUDE extra_inc=big_iron.inc)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  set(FORWARD_SDK_ROOT "SDKROOT=${CMAKE_OSX_SYSROOT}")
  if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
    set(arch "arch=arm64")
  endif()
endif()

if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
  if(NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR)
    set(arch "arch=${CMAKE_SYSTEM_PROCESSOR}")
    if(CMAKE_CXX_COMPILER)
        set(CPLUS "CPLUS=${CMAKE_CXX_COMPILER}")
    endif()
    if(CMAKE_C_COMPILER)
        set(CONLY "CONLY=${CMAKE_C_COMPILER}")
    endif()
  endif()
endif()

tbb_build(TBB_ROOT ${CMAKE_CURRENT_BINARY_DIR}/src MAKE_ARGS ${arch} ${CPLUS} ${CONLY} ${DISABLE_EXCEPTIONS_ARG} ${TBB_STATIC_INCLUDE} ${FORWARD_SDK_ROOT})

set(SUBDIR ${CMAKE_CURRENT_BINARY_DIR}/tbb_cmake_build/tbb_cmake_build_subdir)
if(CMAKE_BUILD_TYPE STREQUAL "Release")
    set(SUBDIR "${SUBDIR}_release")
else()
    set(SUBDIR "${SUBDIR}_debug")
endif()

file(GLOB OUTPUTS ${SUBDIR}/*.so.* ${SUBDIR}/*.so ${SUBDIR}/*.a ${SUBDIR}/*.dylib ${SUBDIR}/*.dylib.*)

install(FILES ${OUTPUTS} DESTINATION lib)
