Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 50 lines 1.3 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 cmake, 6 gtest, 7}: 8 9stdenv.mkDerivation (finalAttrs: { 10 pname = "parallel-hashmap"; 11 version = "2.0.0"; 12 13 src = fetchFromGitHub { 14 owner = "greg7mdp"; 15 repo = "parallel-hashmap"; 16 tag = "v${finalAttrs.version}"; 17 hash = "sha256-JiDhEpAQyyPXGkY9DYLvJ2XW1Bp3Ex1iMtbzNdra95g="; 18 }; 19 20 postPatch = '' 21 # don't download googletest, but build it from source 22 # https://github.com/greg7mdp/parallel-hashmap/blob/be6a2c79857c9ea76760ca6ce782e1609713428e/CMakeLists.txt#L98 23 substituteInPlace CMakeLists.txt \ 24 --replace "include(cmake/DownloadGTest.cmake)" "add_subdirectory(${gtest.src} ./googletest-build EXCLUDE_FROM_ALL)" 25 ''; 26 27 nativeBuildInputs = [ 28 cmake 29 ]; 30 31 cmakeFlags = [ 32 "-DPHMAP_BUILD_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}" 33 "-DPHMAP_BUILD_EXAMPLES=OFF" 34 ]; 35 36 nativeCheckInputs = [ 37 gtest 38 ]; 39 40 doCheck = true; 41 42 meta = with lib; { 43 description = "Family of header-only, very fast and memory-friendly hashmap and btree containers"; 44 homepage = "https://github.com/greg7mdp/parallel-hashmap"; 45 changelog = "https://github.com/greg7mdp/parallel-hashmap/releases/tag/v${finalAttrs.version}"; 46 license = licenses.asl20; 47 platforms = platforms.unix; 48 maintainers = with maintainers; [ natsukium ]; 49 }; 50})