diff options
Diffstat (limited to 'gnu/packages/cpp.scm')
-rw-r--r-- | gnu/packages/cpp.scm | 104 |
1 files changed, 102 insertions, 2 deletions
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index af10d1186f..45a02b5735 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com> ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> -;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> @@ -19,7 +19,7 @@ ;;; Copyright © 2020 Milkey Mouse <milkeymouse@meme.institute> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> - +;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +46,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix modules) + #:use-module (guix gexp) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) @@ -66,6 +67,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages pretty-print) @@ -557,6 +559,66 @@ tools: @end itemize\n") (license license:bsd-3))) +(define-public cpp-httplib + ;; this package is not graftable, as everything is implemented in a single + ;; header + (package + (name "cpp-httplib") + (version "0.8.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yhirose/cpp-httplib") + (commit (string-append "v" version)))) + (sha256 + (base32 "0c0gyfbvm34bgrqy9fhfxw1f8nb9zhf063j7xq91k892flb7qm1c")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + '("-DBUILD_SHARED_LIBS=ON" + "-DHTTPLIB_COMPILE=ON" + "-DHTTPLIB_REQUIRE_BROTLI=ON" + "-DHTTPLIB_REQUIRE_OPENSSL=ON" + "-DHTTPLIB_REQUIRE_ZLIB=ON") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-network-tests + (lambda _ + (for-each + (lambda (test) + (substitute* "test/test.cc" + (((string-append "\\(" test)) + (string-append "(DISABLED_" test)))) + ;; There are tests requiring network access, disable them + '("AbsoluteRedirectTest" "BaseAuthTest" "CancelTest" + "ChunkedEncodingTest" "ChunkedEncodingTest" + "DecodeWithChunkedEncoding" "DefaultHeadersTest" + "DigestAuthTest" "HttpsToHttpRedirectTest" + "RangeTest" "RedirectTest" "RelativeRedirectTest" + "SSLClientTest" "SendAPI" "TooManyRedirectTest" "UrlWithSpace" + "YahooRedirectTest" "YahooRedirectTest")))) + (replace 'check + (lambda* (#:key source tests? #:allow-other-keys) + ;; openssl genrsa wants to write a file in the git checkout + (when tests? + (with-directory-excursion "../source/test" + (invoke "make")))))))) + (native-inputs + ;; required to build shared lib + `(("python" ,python))) + (inputs + `(("brotli" ,brotli) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (home-page "https://github.com/yhirose/cpp-httplib") + (synopsis "C++ HTTP/HTTPS server and client library") + (description "cpp-httplib is a C++11 single-file cross platform blocking +HTTP/HTTPS library, easy to setup. It can also be used as a single-header +library.") + (license license:expat))) + (define-public cpplint (package (name "cpplint") @@ -1213,3 +1275,41 @@ of reading and writing XML.") ;; incompatible with the GPL v2. Refer to the file named FLOSSE for the ;; details. (license license:gpl2+))) + +(define-public jsonnet + (package + (name "jsonnet") + (version "0.17.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/jsonnet") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ddz14699v5lqx3dh0mb7hfffr6fk5zhmzn3z8yxkqqvriqnciim")) + (modules '((guix build utils))) + (snippet + #~(begin + (rename-file "third_party/md5" ".md5") + (delete-file-recursively "third_party") + (delete-file-recursively "doc/third_party") + (substitute* '("core/vm.cpp") + (("#include \"json.hpp\"") "#include <nlohmann/json.hpp>")) + (mkdir "third_party") + (rename-file ".md5" "third_party/md5"))))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DUSE_SYSTEM_GTEST=ON" "-DUSE_SYSTEM_JSON=ON" + "-DBUILD_STATIC_LIBS=OFF"))) + (native-inputs + `(("googletest" ,googletest) + ("pkg-config" ,pkg-config))) + (inputs + `(("json-modern-cxx" ,json-modern-cxx))) + (home-page "https://jsonnet.org/") + (synopsis "Data templating language") + (description "Jsonnet is a templating language extending JSON +syntax with variables, conditions, functions and more.") + (license license:asl2.0))) |