gnu: Add tsl-sparse-map.

* gnu/packages/cpp.scm (tsl-sparse-map): New variable.

Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
David Elsing 2023-06-25 10:03:55 +00:00 committed by Liliana Marie Prikler
parent 33e2996375
commit 53ade735cf
No known key found for this signature in database
GPG key ID: 442A84B8C70E2F87

View file

@ -2624,3 +2624,39 @@ (define-public tsl-hopscotch-map
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)))