summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/taskflow')
-rw-r--r--dev-cpp/taskflow/Manifest1
-rw-r--r--dev-cpp/taskflow/files/taskflow-3.3.0-fix_doctest.patch377
-rw-r--r--dev-cpp/taskflow/files/taskflow-9999-fix_doctest.patch377
-rw-r--r--dev-cpp/taskflow/metadata.xml20
-rw-r--r--dev-cpp/taskflow/taskflow-3.3.0.ebuild47
-rw-r--r--dev-cpp/taskflow/taskflow-9999.ebuild47
6 files changed, 869 insertions, 0 deletions
diff --git a/dev-cpp/taskflow/Manifest b/dev-cpp/taskflow/Manifest
new file mode 100644
index 000000000000..37d6816e4837
--- /dev/null
+++ b/dev-cpp/taskflow/Manifest
@@ -0,0 +1 @@
+DIST taskflow-3.3.0.tar.gz 64446007 BLAKE2B 07878a03bd90af64914f1dc80850bcf5d4140f20ecfa998237039b6f37cc668e8c2b5dffafb75f4518209b3ac01f9935f5e30a020871334f131e6fe7654748bf SHA512 08ab20bf38927d49c8332fc103cb7b4b6358efa06466cb8471f2004eb27b79b9eadc9971ec4acd110c8f369686b6f99bf3e21192285c3f28b9cb855bfd9ab0b5
diff --git a/dev-cpp/taskflow/files/taskflow-3.3.0-fix_doctest.patch b/dev-cpp/taskflow/files/taskflow-3.3.0-fix_doctest.patch
new file mode 100644
index 000000000000..c5da4fd96eb6
--- /dev/null
+++ b/dev-cpp/taskflow/files/taskflow-3.3.0-fix_doctest.patch
@@ -0,0 +1,377 @@
+diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
+index cf881d4..ff6618a 100644
+--- a/unittests/CMakeLists.txt
++++ b/unittests/CMakeLists.txt
+@@ -1,6 +1,7 @@
+ enable_testing()
+
+-include(${TF_3RD_PARTY_DIR}/doctest/doctest.cmake)
++find_package(doctest REQUIRED)
++include(doctest)
+
+ list(APPEND TF_UNITTESTS
+ utility
+@@ -22,8 +23,7 @@ list(APPEND TF_UNITTESTS
+
+ foreach(unittest IN LISTS TF_UNITTESTS)
+ add_executable(${unittest} ${unittest}.cpp)
+- target_link_libraries(${unittest} ${PROJECT_NAME} tf::default_settings)
+- target_include_directories(${unittest} PRIVATE ${TF_3RD_PARTY_DIR}/doctest)
++ target_link_libraries(${unittest} ${PROJECT_NAME} tf::default_settings doctest::doctest)
+ doctest_discover_tests(${unittest})
+ endforeach()
+
+diff --git a/unittests/algorithms.cpp b/unittests/algorithms.cpp
+index 5ae7ac6..efffdd9 100644
+--- a/unittests/algorithms.cpp
++++ b/unittests/algorithms.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/reduce.hpp>
+ #include <taskflow/algorithm/sort.hpp>
+diff --git a/unittests/asyncs.cpp b/unittests/asyncs.cpp
+index cd6985c..4e7b80f 100644
+--- a/unittests/asyncs.cpp
++++ b/unittests/asyncs.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // --------------------------------------------------------
+diff --git a/unittests/basics.cpp b/unittests/basics.cpp
+index 2784fa4..ac1ab20 100644
+--- a/unittests/basics.cpp
++++ b/unittests/basics.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/reduce.hpp>
+
+diff --git a/unittests/cancellation.cpp b/unittests/cancellation.cpp
+index 3273af3..ff17ad4 100644
+--- a/unittests/cancellation.cpp
++++ b/unittests/cancellation.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // EmptyFuture
+diff --git a/unittests/compositions.cpp b/unittests/compositions.cpp
+index 0d330ae..e2784a5 100644
+--- a/unittests/compositions.cpp
++++ b/unittests/compositions.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // --------------------------------------------------------
+diff --git a/unittests/control_flow.cpp b/unittests/control_flow.cpp
+index 086a8a9..f2da83e 100644
+--- a/unittests/control_flow.cpp
++++ b/unittests/control_flow.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // --------------------------------------------------------
+diff --git a/unittests/cuda/CMakeLists.txt b/unittests/cuda/CMakeLists.txt
+index 7c76523..be2757c 100644
+--- a/unittests/cuda/CMakeLists.txt
++++ b/unittests/cuda/CMakeLists.txt
+@@ -12,15 +12,14 @@ list(APPEND TF_CUDA_UNITTESTS
+
+ foreach(cudatest IN LISTS TF_CUDA_UNITTESTS)
+ add_executable(${cudatest} ${cudatest}.cu)
+- target_link_libraries(${cudatest} ${PROJECT_NAME} tf::default_settings)
+- target_include_directories(${cudatest} PRIVATE ${TF_3RD_PARTY_DIR}/doctest)
+-
++ target_link_libraries(${cudatest} ${PROJECT_NAME} tf::default_settings doctest::doctest)
++
+ # avoid cmake 3.18+ warning
+ # we let nvcc to decide the flag if the architecture is not given
+ if(NOT CUDA_ARCHITECTURES)
+ set_property(TARGET ${cudatest} PROPERTY CUDA_ARCHITECTURES OFF)
+ endif()
+-
++
+ doctest_discover_tests(${cudatest})
+ endforeach()
+
+diff --git a/unittests/cuda/cuda_algorithms.cu b/unittests/cuda/cuda_algorithms.cu
+index d97289e..5185cd9 100644
+--- a/unittests/cuda/cuda_algorithms.cu
++++ b/unittests/cuda/cuda_algorithms.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+ #include <taskflow/cuda/algorithm/for_each.hpp>
+diff --git a/unittests/cuda/cuda_basics.cu b/unittests/cuda/cuda_basics.cu
+index 8e0fdff..f97c782 100644
+--- a/unittests/cuda/cuda_basics.cu
++++ b/unittests/cuda/cuda_basics.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+
+diff --git a/unittests/cuda/cuda_capturer_optimizer.cu b/unittests/cuda/cuda_capturer_optimizer.cu
+index 86fcfb7..7cbcf0a 100644
+--- a/unittests/cuda/cuda_capturer_optimizer.cu
++++ b/unittests/cuda/cuda_capturer_optimizer.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+ #include <taskflow/cuda/algorithm/for_each.hpp>
+diff --git a/unittests/cuda/cuda_device.cu b/unittests/cuda/cuda_device.cu
+index b3d316d..241cc93 100644
+--- a/unittests/cuda/cuda_device.cu
++++ b/unittests/cuda/cuda_device.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+
+diff --git a/unittests/cuda/cuda_kmeans.cu b/unittests/cuda/cuda_kmeans.cu
+index 91495b5..c14d250 100644
+--- a/unittests/cuda/cuda_kmeans.cu
++++ b/unittests/cuda/cuda_kmeans.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+ #include <taskflow/cuda/algorithm/for_each.hpp>
+diff --git a/unittests/cuda/cuda_matrix.cu b/unittests/cuda/cuda_matrix.cu
+index 8e9f242..ec5386f 100644
+--- a/unittests/cuda/cuda_matrix.cu
++++ b/unittests/cuda/cuda_matrix.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+
+diff --git a/unittests/cuda/cuda_rebinds.cu b/unittests/cuda/cuda_rebinds.cu
+index eb9218f..92798df 100644
+--- a/unittests/cuda/cuda_rebinds.cu
++++ b/unittests/cuda/cuda_rebinds.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+diff --git a/unittests/cuda/cuda_updates.cu b/unittests/cuda/cuda_updates.cu
+index bdda539..d8b52dc 100644
+--- a/unittests/cuda/cuda_updates.cu
++++ b/unittests/cuda/cuda_updates.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+diff --git a/unittests/movable.cpp b/unittests/movable.cpp
+index 58be4fc..c4b3f1a 100644
+--- a/unittests/movable.cpp
++++ b/unittests/movable.cpp
+@@ -1,5 +1,5 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // increments a counter only on destruction
+diff --git a/unittests/pipelines.cpp b/unittests/pipelines.cpp
+index 6527b34..c925e67 100644
+--- a/unittests/pipelines.cpp
++++ b/unittests/pipelines.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/pipeline.hpp>
+diff --git a/unittests/semaphores.cpp b/unittests/semaphores.cpp
+index d4713f8..c537702 100644
+--- a/unittests/semaphores.cpp
++++ b/unittests/semaphores.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // --------------------------------------------------------
+diff --git a/unittests/serializer.cpp b/unittests/serializer.cpp
+index 20edef3..5b9870f 100644
+--- a/unittests/serializer.cpp
++++ b/unittests/serializer.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/utility/serializer.hpp>
+ #include <random>
+
+diff --git a/unittests/sorting.cpp b/unittests/sorting.cpp
+index 00a616c..005eaf2 100644
+--- a/unittests/sorting.cpp
++++ b/unittests/sorting.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/sort.hpp>
+
+diff --git a/unittests/subflows.cpp b/unittests/subflows.cpp
+index b1de5d1..11fd97a 100644
+--- a/unittests/subflows.cpp
++++ b/unittests/subflows.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/reduce.hpp>
+
+diff --git a/unittests/sycl/CMakeLists.txt b/unittests/sycl/CMakeLists.txt
+index 492c941..3ef1dd7 100644
+--- a/unittests/sycl/CMakeLists.txt
++++ b/unittests/sycl/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-list(APPEND TF_SYCL_TESTS
++list(APPEND TF_SYCL_TESTS
+ sycl_basics
+ sycl_algorithms
+ sycl_rebinds
+@@ -12,9 +12,8 @@ foreach(sycl_test IN LISTS TF_SYCL_TESTS)
+ target_compile_options(${sycl_test} PRIVATE ${TF_SYCL_OPTIONS})
+ target_link_options(${sycl_test} PRIVATE ${TF_SYCL_OPTIONS})
+ target_link_libraries(${sycl_test}
+- ${PROJECT_NAME} Threads::Threads tf::default_settings
++ ${PROJECT_NAME} Threads::Threads tf::default_settings doctest::doctest
+ )
+- target_include_directories(${sycl_test} PRIVATE ${TF_3RD_PARTY_DIR}/doctest)
+-
++
+ doctest_discover_tests(${sycl_test})
+ endforeach()
+diff --git a/unittests/sycl/sycl_algorithms.cpp b/unittests/sycl/sycl_algorithms.cpp
+index cde9666..93973dc 100644
+--- a/unittests/sycl/sycl_algorithms.cpp
++++ b/unittests/sycl/sycl_algorithms.cpp
+@@ -1,5 +1,5 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/syclflow.hpp>
+
+ constexpr float eps = 0.0001f;
+diff --git a/unittests/sycl/sycl_basics.cpp b/unittests/sycl/sycl_basics.cpp
+index 7ed5e16..274b9ce 100644
+--- a/unittests/sycl/sycl_basics.cpp
++++ b/unittests/sycl/sycl_basics.cpp
+@@ -1,5 +1,5 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/syclflow.hpp>
+
+ // task creation
+diff --git a/unittests/sycl/sycl_rebinds.cpp b/unittests/sycl/sycl_rebinds.cpp
+index 5a00bf8..8854ef9 100644
+--- a/unittests/sycl/sycl_rebinds.cpp
++++ b/unittests/sycl/sycl_rebinds.cpp
+@@ -1,5 +1,5 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/syclflow.hpp>
+
+ // ----------------------------------------------------------------------------
+diff --git a/unittests/traversals.cpp b/unittests/traversals.cpp
+index b7cac8a..474df49 100644
+--- a/unittests/traversals.cpp
++++ b/unittests/traversals.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/taskflow.hpp>
+
+diff --git a/unittests/tsq.cpp b/unittests/tsq.cpp
+index 097f96d..d3c5f99 100644
+--- a/unittests/tsq.cpp
++++ b/unittests/tsq.cpp
+@@ -49,7 +49,7 @@
+
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // ============================================================================
+diff --git a/unittests/utility.cpp b/unittests/utility.cpp
+index 9822cfe..95a253d 100644
+--- a/unittests/utility.cpp
++++ b/unittests/utility.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/utility/traits.hpp>
+ #include <taskflow/utility/object_pool.hpp>
diff --git a/dev-cpp/taskflow/files/taskflow-9999-fix_doctest.patch b/dev-cpp/taskflow/files/taskflow-9999-fix_doctest.patch
new file mode 100644
index 000000000000..323d17e7f535
--- /dev/null
+++ b/dev-cpp/taskflow/files/taskflow-9999-fix_doctest.patch
@@ -0,0 +1,377 @@
+diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
+index 3397d798..1256e8e6 100644
+--- a/unittests/CMakeLists.txt
++++ b/unittests/CMakeLists.txt
+@@ -1,6 +1,7 @@
+ enable_testing()
+
+-include(${TF_3RD_PARTY_DIR}/doctest/doctest.cmake)
++find_package(doctest REQUIRED)
++include(doctest)
+
+ list(APPEND TF_UNITTESTS
+ utility
+@@ -23,8 +24,7 @@ list(APPEND TF_UNITTESTS
+
+ foreach(unittest IN LISTS TF_UNITTESTS)
+ add_executable(${unittest} ${unittest}.cpp)
+- target_link_libraries(${unittest} ${PROJECT_NAME} tf::default_settings)
+- target_include_directories(${unittest} PRIVATE ${TF_3RD_PARTY_DIR}/doctest)
++ target_link_libraries(${unittest} ${PROJECT_NAME} tf::default_settings doctest::doctest)
+ doctest_discover_tests(${unittest})
+ endforeach()
+
+diff --git a/unittests/algorithms.cpp b/unittests/algorithms.cpp
+index a250713a..09ae9ba5 100644
+--- a/unittests/algorithms.cpp
++++ b/unittests/algorithms.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/reduce.hpp>
+ #include <taskflow/algorithm/sort.hpp>
+diff --git a/unittests/asyncs.cpp b/unittests/asyncs.cpp
+index 28eeaa8c..466687a2 100644
+--- a/unittests/asyncs.cpp
++++ b/unittests/asyncs.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // --------------------------------------------------------
+diff --git a/unittests/basics.cpp b/unittests/basics.cpp
+index f5b9e3dd..e93c3fd3 100644
+--- a/unittests/basics.cpp
++++ b/unittests/basics.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/reduce.hpp>
+
+diff --git a/unittests/cancellation.cpp b/unittests/cancellation.cpp
+index 3ce1cb8c..6543ee52 100644
+--- a/unittests/cancellation.cpp
++++ b/unittests/cancellation.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // EmptyFuture
+diff --git a/unittests/compositions.cpp b/unittests/compositions.cpp
+index 4fd621b5..e3c91e4c 100644
+--- a/unittests/compositions.cpp
++++ b/unittests/compositions.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // --------------------------------------------------------
+diff --git a/unittests/control_flow.cpp b/unittests/control_flow.cpp
+index 024ace84..11206384 100644
+--- a/unittests/control_flow.cpp
++++ b/unittests/control_flow.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // --------------------------------------------------------
+diff --git a/unittests/cuda/CMakeLists.txt b/unittests/cuda/CMakeLists.txt
+index d0ccc8e9..ccb46721 100644
+--- a/unittests/cuda/CMakeLists.txt
++++ b/unittests/cuda/CMakeLists.txt
+@@ -13,15 +13,14 @@ list(APPEND TF_CUDA_UNITTESTS
+
+ foreach(cudatest IN LISTS TF_CUDA_UNITTESTS)
+ add_executable(${cudatest} ${cudatest}.cu)
+- target_link_libraries(${cudatest} ${PROJECT_NAME} tf::default_settings)
+- target_include_directories(${cudatest} PRIVATE ${TF_3RD_PARTY_DIR}/doctest)
+-
++ target_link_libraries(${cudatest} ${PROJECT_NAME} tf::default_settings doctest::doctest)
++
+ # avoid cmake 3.18+ warning
+ # we let nvcc to decide the flag if the architecture is not given
+ if(NOT CUDA_ARCHITECTURES)
+ set_property(TARGET ${cudatest} PROPERTY CUDA_ARCHITECTURES OFF)
+ endif()
+-
++
+ doctest_discover_tests(${cudatest})
+ endforeach()
+
+diff --git a/unittests/cuda/cuda_algorithms.cu b/unittests/cuda/cuda_algorithms.cu
+index cccc04b4..47645273 100644
+--- a/unittests/cuda/cuda_algorithms.cu
++++ b/unittests/cuda/cuda_algorithms.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+ #include <taskflow/cuda/algorithm/for_each.hpp>
+diff --git a/unittests/cuda/cuda_basics.cu b/unittests/cuda/cuda_basics.cu
+index 8e0fdffd..f97c7822 100644
+--- a/unittests/cuda/cuda_basics.cu
++++ b/unittests/cuda/cuda_basics.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+
+diff --git a/unittests/cuda/cuda_capturer_optimizer.cu b/unittests/cuda/cuda_capturer_optimizer.cu
+index 86fcfb72..7cbcf0a5 100644
+--- a/unittests/cuda/cuda_capturer_optimizer.cu
++++ b/unittests/cuda/cuda_capturer_optimizer.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+ #include <taskflow/cuda/algorithm/for_each.hpp>
+diff --git a/unittests/cuda/cuda_device.cu b/unittests/cuda/cuda_device.cu
+index 49df36aa..fb68b29a 100644
+--- a/unittests/cuda/cuda_device.cu
++++ b/unittests/cuda/cuda_device.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+
+diff --git a/unittests/cuda/cuda_kmeans.cu b/unittests/cuda/cuda_kmeans.cu
+index 91495b59..c14d250f 100644
+--- a/unittests/cuda/cuda_kmeans.cu
++++ b/unittests/cuda/cuda_kmeans.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+ #include <taskflow/cuda/algorithm/for_each.hpp>
+diff --git a/unittests/cuda/cuda_matrix.cu b/unittests/cuda/cuda_matrix.cu
+index 8e9f2421..ec5386f4 100644
+--- a/unittests/cuda/cuda_matrix.cu
++++ b/unittests/cuda/cuda_matrix.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+
+diff --git a/unittests/cuda/cuda_rebinds.cu b/unittests/cuda/cuda_rebinds.cu
+index eb9218fa..92798dfd 100644
+--- a/unittests/cuda/cuda_rebinds.cu
++++ b/unittests/cuda/cuda_rebinds.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+diff --git a/unittests/cuda/cuda_updates.cu b/unittests/cuda/cuda_updates.cu
+index bdda539a..d8b52dcf 100644
+--- a/unittests/cuda/cuda_updates.cu
++++ b/unittests/cuda/cuda_updates.cu
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/cuda/cudaflow.hpp>
+diff --git a/unittests/movable.cpp b/unittests/movable.cpp
+index 96ce9da3..d5e64b47 100644
+--- a/unittests/movable.cpp
++++ b/unittests/movable.cpp
+@@ -1,5 +1,5 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // increments a counter only on destruction
+diff --git a/unittests/pipelines.cpp b/unittests/pipelines.cpp
+index 94d8f394..701365c0 100644
+--- a/unittests/pipelines.cpp
++++ b/unittests/pipelines.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/pipeline.hpp>
+diff --git a/unittests/semaphores.cpp b/unittests/semaphores.cpp
+index 616191b5..64b8a587 100644
+--- a/unittests/semaphores.cpp
++++ b/unittests/semaphores.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // --------------------------------------------------------
+diff --git a/unittests/serializer.cpp b/unittests/serializer.cpp
+index 92c3ec70..c6a715e6 100644
+--- a/unittests/serializer.cpp
++++ b/unittests/serializer.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/utility/serializer.hpp>
+ #include <random>
+
+diff --git a/unittests/sorting.cpp b/unittests/sorting.cpp
+index 8146324a..ff732fb0 100644
+--- a/unittests/sorting.cpp
++++ b/unittests/sorting.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/sort.hpp>
+
+diff --git a/unittests/subflows.cpp b/unittests/subflows.cpp
+index 9db430de..e669a2c8 100644
+--- a/unittests/subflows.cpp
++++ b/unittests/subflows.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+ #include <taskflow/algorithm/reduce.hpp>
+
+diff --git a/unittests/sycl/CMakeLists.txt b/unittests/sycl/CMakeLists.txt
+index c6481996..3b014d0e 100644
+--- a/unittests/sycl/CMakeLists.txt
++++ b/unittests/sycl/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-list(APPEND TF_SYCL_TESTS
++list(APPEND TF_SYCL_TESTS
+ sycl_basics
+ #sycl_algorithms
+ #sycl_rebinds
+@@ -12,9 +12,8 @@ foreach(sycl_test IN LISTS TF_SYCL_TESTS)
+ target_compile_options(${sycl_test} PRIVATE ${TF_SYCL_OPTIONS})
+ target_link_options(${sycl_test} PRIVATE ${TF_SYCL_OPTIONS})
+ target_link_libraries(${sycl_test}
+- ${PROJECT_NAME} Threads::Threads tf::default_settings
++ ${PROJECT_NAME} Threads::Threads tf::default_settings doctest::doctest
+ )
+- target_include_directories(${sycl_test} PRIVATE ${TF_3RD_PARTY_DIR}/doctest)
+-
++
+ doctest_discover_tests(${sycl_test})
+ endforeach()
+diff --git a/unittests/sycl/sycl_algorithms.cpp b/unittests/sycl/sycl_algorithms.cpp
+index e029b2ef..7b44ca78 100644
+--- a/unittests/sycl/sycl_algorithms.cpp
++++ b/unittests/sycl/sycl_algorithms.cpp
+@@ -1,5 +1,5 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/syclflow.hpp>
+
+ constexpr float eps = 0.0001f;
+diff --git a/unittests/sycl/sycl_basics.cpp b/unittests/sycl/sycl_basics.cpp
+index 0ff76969..eac52906 100644
+--- a/unittests/sycl/sycl_basics.cpp
++++ b/unittests/sycl/sycl_basics.cpp
+@@ -1,5 +1,5 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/sycl/syclflow.hpp>
+
+ // task creation
+diff --git a/unittests/sycl/sycl_rebinds.cpp b/unittests/sycl/sycl_rebinds.cpp
+index 71b2f9de..1b5949fd 100644
+--- a/unittests/sycl/sycl_rebinds.cpp
++++ b/unittests/sycl/sycl_rebinds.cpp
+@@ -1,5 +1,5 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/syclflow.hpp>
+
+ // ----------------------------------------------------------------------------
+diff --git a/unittests/traversals.cpp b/unittests/traversals.cpp
+index 71aef04b..683915b4 100644
+--- a/unittests/traversals.cpp
++++ b/unittests/traversals.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/taskflow.hpp>
+
+diff --git a/unittests/tsq.cpp b/unittests/tsq.cpp
+index 51a137a7..8e9cac56 100644
+--- a/unittests/tsq.cpp
++++ b/unittests/tsq.cpp
+@@ -49,7 +49,7 @@
+
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+ #include <taskflow/taskflow.hpp>
+
+ // ============================================================================
+diff --git a/unittests/utility.cpp b/unittests/utility.cpp
+index 63c49708..01ee81a3 100644
+--- a/unittests/utility.cpp
++++ b/unittests/utility.cpp
+@@ -1,6 +1,6 @@
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
+
+-#include <doctest.h>
++#include <doctest/doctest.h>
+
+ #include <taskflow/utility/traits.hpp>
+ #include <taskflow/utility/object_pool.hpp>
diff --git a/dev-cpp/taskflow/metadata.xml b/dev-cpp/taskflow/metadata.xml
new file mode 100644
index 000000000000..059a58ff11cd
--- /dev/null
+++ b/dev-cpp/taskflow/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>tamiko@gentoo.org</email>
+ <name>Matthias Maier</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <longdescription>
+ Taskflow is faster, more expressive, and easier for drop-in
+ integration than many of existing task programming frameworks in
+ handling complex parallel workloads.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">taskflow/taskflow</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-cpp/taskflow/taskflow-3.3.0.ebuild b/dev-cpp/taskflow/taskflow-3.3.0.ebuild
new file mode 100644
index 000000000000..c131483350c0
--- /dev/null
+++ b/dev-cpp/taskflow/taskflow-3.3.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Modern C++ Parallel Task Programming"
+HOMEPAGE="https://taskflow.github.io"
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/taskflow/${PN}.git"
+ inherit git-r3
+ S="${WORKDIR}/taskflow-${PV}"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/taskflow-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( dev-cpp/doctest )"
+
+HTML_DOCS=( docs/. )
+
+PATCHES=(
+ "${FILESDIR}"/taskflow-3.3.0-fix_doctest.patch
+)
+
+src_prepare() {
+ rm -r "${S}/3rd-party" || die "rm failed"
+ cmake_src_prepare
+}
+
+src_configure() {
+ # TODO: enable CUDA via USE flag
+ local mycmakeargs=(
+ -DTF_BUILD_CUDA=OFF
+ -DTF_BUILD_EXAMPLES=$(usex examples)
+ -DTF_BUILD_TESTS=$(usex test)
+ )
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/taskflow/taskflow-9999.ebuild b/dev-cpp/taskflow/taskflow-9999.ebuild
new file mode 100644
index 000000000000..67272062e500
--- /dev/null
+++ b/dev-cpp/taskflow/taskflow-9999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Modern C++ Parallel Task Programming"
+HOMEPAGE="https://taskflow.github.io"
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/taskflow/${PN}.git"
+ inherit git-r3
+ S="${WORKDIR}/taskflow-${PV}"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S="${WORKDIR}/taskflow-${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="test? ( dev-cpp/doctest )"
+
+HTML_DOCS=( docs/. )
+
+PATCHES=(
+ "${FILESDIR}"/taskflow-9999-fix_doctest.patch
+)
+
+src_prepare() {
+ rm -r "${S}/3rd-party" || die "rm failed"
+ cmake_src_prepare
+}
+
+src_configure() {
+ # TODO: enable CUDA via USE flag
+ local mycmakeargs=(
+ -DTF_BUILD_CUDA=OFF
+ -DTF_BUILD_EXAMPLES=$(usex examples)
+ -DTF_BUILD_TESTS=$(usex test)
+ )
+
+ cmake_src_configure
+}