diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/taskflow')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/taskflow/default.nix | 50 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/taskflow/unvendor-doctest.patch | 21 |
2 files changed, 71 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/taskflow/default.nix b/nixpkgs/pkgs/development/libraries/taskflow/default.nix new file mode 100644 index 000000000000..dd2f8fb39144 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/taskflow/default.nix @@ -0,0 +1,50 @@ +{ lib +, stdenv +, fetchFromGitHub +, substituteAll +, doctest +, cmake +}: + +stdenv.mkDerivation rec { + pname = "taskflow"; + version = "3.4.0"; + + src = fetchFromGitHub { + owner = "taskflow"; + repo = "taskflow"; + rev = "v${version}"; + hash = "sha256-5bTTV/WAxslHQ+hvATtUUA1h3MuNzwVTlYMbD/sINRM="; + }; + + patches = [ + (substituteAll { + src = ./unvendor-doctest.patch; + inherit doctest; + }) + ]; + + postPatch = '' + rm -r 3rd-party + + # tries to use x86 intrinsics on aarch64-darwin + sed -i '/^#if __has_include (<immintrin\.h>)/,/^#endif/d' taskflow/utility/os.hpp + ''; + + nativeBuildInputs = [ + cmake + ]; + + doCheck = true; + + meta = { + description = "General-purpose Parallel and Heterogeneous Task Programming System"; + homepage = "https://taskflow.github.io/"; + changelog = let + release = lib.replaceStrings ["."] ["-"] version; + in "https://taskflow.github.io/taskflow/release-${release}.html"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/taskflow/unvendor-doctest.patch b/nixpkgs/pkgs/development/libraries/taskflow/unvendor-doctest.patch new file mode 100644 index 000000000000..85f2e1fcff98 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/taskflow/unvendor-doctest.patch @@ -0,0 +1,21 @@ +diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt +index 3397d798..8277191e 100644 +--- a/unittests/CMakeLists.txt ++++ b/unittests/CMakeLists.txt +@@ -1,6 +1,6 @@ + enable_testing() + +-include(${TF_3RD_PARTY_DIR}/doctest/doctest.cmake) ++include(@doctest@/lib/cmake/doctest/doctest.cmake) + + list(APPEND TF_UNITTESTS + utility +@@ -24,7 +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_include_directories(${unittest} PRIVATE @doctest@/include/doctest) + doctest_discover_tests(${unittest}) + endforeach() + |