diff options
author | David Elsing <david.elsing@posteo.net> | 2023-06-25 10:03:55 +0000 |
---|---|---|
committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2023-07-01 11:53:20 +0200 |
commit | 53ade735cf10a287e7fa87142b2db97925e80389 (patch) | |
tree | 864309952bc2bd649db55428e00942790af4d8a2 | |
parent | 33e29963757d0728604e32d351b2a67d48190ace (diff) | |
download | guix-53ade735cf10a287e7fa87142b2db97925e80389.tar.gz |
gnu: Add tsl-sparse-map.
* gnu/packages/cpp.scm (tsl-sparse-map): New variable. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
-rw-r--r-- | gnu/packages/cpp.scm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 1dc2621748..4c63a4e004 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2624,3 +2624,39 @@ map and a hash set variants using open addressing and hopscotch hashing to resolve collisions. It is intended to be fast and provides additional features, such as heterogeneous lookups and different growth policies.") (license license:expat))) + +(define-public tsl-sparse-map + (package + (name "tsl-sparse-map") + (version "0.6.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Tessil/sparse-map") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0rb7w0hzsj4qbm0dff1niaf75aag9lj0xqhgb3vg5h9hfic62ic2")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-cmake-test + (lambda _ + (let ((file (open-file "CMakeLists.txt" "a"))) + (display "\nenable_testing()\nadd_subdirectory(tests)" file) + (close-port file)) + (substitute* "tests/CMakeLists.txt" + (("set\\(Boost_USE_STATIC_LIBS.*") "") + (("add_subdirectory\\(\\.\\..*") + "add_test(tsl_sparse_map_tests tsl_sparse_map_tests)\n"))))))) + (native-inputs (list boost)) + (home-page "https://github.com/Tessil/sparse-map") + (synopsis "Sparse hash map") + (description "This package provides a C++ implementation of a hash map and +a hash set with open addressing and sparse quadratic probing. It is intended +to be memory efficient and provides additional features, such as heterogeneous +lookups and different growth policies.") + (license license:expat))) |