diff --git a/pkgs/by-name/pa/parallel-hashmap/package.nix b/pkgs/by-name/pa/parallel-hashmap/package.nix new file mode 100644 index 000000000000..767b760c920a --- /dev/null +++ b/pkgs/by-name/pa/parallel-hashmap/package.nix @@ -0,0 +1,49 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, gtest +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "parallel-hashmap"; + version = "1.3.12"; + + src = fetchFromGitHub { + owner = "greg7mdp"; + repo = "parallel-hashmap"; + rev = "refs/tags/v${finalAttrs.version}"; + hash = "sha256-6KhzXUxa4WOsRrPmSSgguFxRGTOTIaxiJBFFSzOhch0="; + }; + + postPatch = '' + # don't download googletest, but build it from source + # https://github.com/greg7mdp/parallel-hashmap/blob/be6a2c79857c9ea76760ca6ce782e1609713428e/CMakeLists.txt#L98 + substituteInPlace CMakeLists.txt \ + --replace "include(cmake/DownloadGTest.cmake)" "add_subdirectory(${gtest.src} ./googletest-build EXCLUDE_FROM_ALL)" + ''; + + nativeBuildInputs = [ + cmake + ]; + + cmakeFlags = [ + "-DPHMAP_BUILD_TESTS=${if finalAttrs.doCheck then "ON" else "OFF"}" + "-DPHMAP_BUILD_EXAMPLES=OFF" + ]; + + nativeCheckInputs = [ + gtest + ]; + + doCheck = true; + + meta = with lib; { + description = "A family of header-only, very fast and memory-friendly hashmap and btree containers"; + homepage = "https://github.com/greg7mdp/parallel-hashmap"; + changelog = "https://github.com/greg7mdp/parallel-hashmap/releases/tag/${finalAttrs.src.rev}"; + license = licenses.asl20; + platforms = platforms.unix; + maintainers = with maintainers; [ natsukium ]; + }; +})