gnu: Add json-modern-cxx.

* gnu/packages/cpp.scm (json-modern-cxx): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Fis Trivial 2018-05-28 08:11:23 +00:00 committed by Ludovic Courtès
parent 385357c0d7
commit e3c0676adf
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 43 additions and 0 deletions

View File

@ -29,7 +29,9 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages llvm)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls))
@ -195,3 +197,44 @@ batches.")
container which uses the order in which keys were inserted to the container
as ordering relation.")
(license license:expat))))
(define-public json-modern-cxx
(package
(name "json-modern-cxx")
(version "3.1.2")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/nlohmann/json/archive/v" version ".tar.gz"))
(sha256
(base32
"0m5fhdpx2qll933db2nsi30nns3cifavzvijzz6mxhdkpmngmzz8"))
(file-name (string-append name "-" version ".tar.gz"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "./third_party")
(delete-file-recursively "./test/thirdparty")
(delete-file-recursively "./benchmarks/thirdparty")
;; Splits catch and fifo_map
(with-directory-excursion "test/src"
(let ((files (find-files "." ".*\\.cpp")))
(substitute* files
(("#include ?\"(catch.hpp)\"" all catch-hpp)
(string-append "#include <catch/" catch-hpp ">")))
(substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append
"#include <fifo_map/" fifo-map-hpp ">")))))))))
(native-inputs
`(("amalgamate" ,amalgamate)))
(inputs
`(("catch2" ,catch-framework2)
("fifo-map" ,fifo-map)))
(home-page "https://github.com/nlohmann/json")
(build-system cmake-build-system)
(synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides
intutive syntax and trivial integration.")
(license license:expat)))