diff options
| author | silvanshade <[email protected]> | 2025-02-08 05:28:20 -0700 |
|---|---|---|
| committer | Jack O'Connor <[email protected]> | 2025-03-13 12:16:50 -0700 |
| commit | 4a885fcaeeb4c79414f9b0433ab417faaacf3066 (patch) | |
| tree | bbe89de41475e9fb7e4d70bf10aece3585db2b3f /c/dependencies | |
| parent | a31e519869d5751370f50c39a99340660ee95bf7 (diff) | |
Implement TBB-based parallelism for C lib
Diffstat (limited to 'c/dependencies')
| -rw-r--r-- | c/dependencies/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | c/dependencies/tbb/CMakeLists.txt | 33 |
2 files changed, 36 insertions, 0 deletions
diff --git a/c/dependencies/CMakeLists.txt b/c/dependencies/CMakeLists.txt new file mode 100644 index 0000000..4382353 --- /dev/null +++ b/c/dependencies/CMakeLists.txt @@ -0,0 +1,3 @@ +if(BLAKE3_USE_TBB) + add_subdirectory(tbb) +endif() diff --git a/c/dependencies/tbb/CMakeLists.txt b/c/dependencies/tbb/CMakeLists.txt new file mode 100644 index 0000000..0f51395 --- /dev/null +++ b/c/dependencies/tbb/CMakeLists.txt @@ -0,0 +1,33 @@ +if(WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + message(FATAL_ERROR "BLAKE3_USE_TBB requires building with Clang or MSVC on Windows") + set(BLAKE3_USE_TBB OFF) +endif() + +find_package(TBB 2021.11.0 QUIET) + +if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.11) + include(FetchContent) + + if(NOT TBB_FOUND AND BLAKE3_FETCH_TBB) + set(CMAKE_C_STANDARD 99) + set(CMAKE_C_EXTENSIONS OFF) + + set(CMAKE_CXX_STANDARD 20) + set(CMAKE_CXX_EXTENSIONS ON) + + option(TBB_TEST OFF "") + option(TBBMALLOC_BUILD OFF "") + + mark_as_advanced(TBB_TEST) + mark_as_advanced(TBBMALLOC_BUILD) + + FetchContent_Declare( + TBB + GIT_REPOSITORY https://github.com/uxlfoundation/oneTBB + GIT_TAG 0c0ff192a2304e114bc9e6557582dfba101360ff # v2022.0.0 + GIT_SHALLOW TRUE + ) + + FetchContent_MakeAvailable(TBB) + endif() +endif() |
