;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system python)
#: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 perl)
#:use-module (gnu packages pkg-config)
- #:use-module (gnu packages tls))
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages web))
(define-public libzen
(package
(modules '((guix build utils)))
(snippet '(delete-file-recursively "./test/thirdparty"))))
(native-inputs
- `(("catch2" ,catch-framework2)))
+ `(("catch2" ,catch-framework2-1)))
(build-system cmake-build-system)
(arguments
`(#:phases
(define-public json-modern-cxx
(package
(name "json-modern-cxx")
- (version "3.1.2")
+ (version "3.7.3")
(home-page "https://github.com/nlohmann/json")
(source
(origin
(commit (string-append "v" version))))
(sha256
(base32
- "1mpr781fb2dfbyscrr7nil75lkxsazg4wkm749168lcf2ksrrbfi"))
+ "04rry1xzis71z5gj1ylcj8b4li5q18zxhcwaviwvi3hx0frzxl9w"))
(file-name (git-file-name name version))
(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
+ ;; Delete bundled software. Preserve doctest_compatibility.h, which
+ ;; is a wrapper library added by this package.
+ (install-file "./test/thirdparty/doctest/doctest_compatibility.h" "/tmp")
+ (for-each delete-file-recursively
+ '("./third_party" "./test/thirdparty" "./benchmarks/thirdparty"))
+ (install-file "/tmp/doctest_compatibility.h" "./test/thirdparty/doctest")
+
+ ;; Adjust for the unbundled fifo_map and doctest.
+ (substitute* "./test/thirdparty/doctest/doctest_compatibility.h"
+ (("#include \"doctest\\.h\"")
+ "#include <doctest/doctest.h>"))
(with-directory-excursion "test/src"
- (let ((files (find-files "." ".*\\.cpp")))
- (substitute* files
- (("#include ?\"(catch.hpp)\"" all catch-hpp)
- (string-append "#include <catch/" catch-hpp ">")))
+ (let ((files (find-files "." "\\.cpp$")))
(substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append
"#include <fifo_map/" fifo-map-hpp ">")))))
#t))))
(native-inputs
- `(("amalgamate" ,amalgamate)))
+ `(("amalgamate" ,amalgamate)
+ ("doctest" ,doctest)))
(inputs
- `(("catch2" ,catch-framework2)
- ("fifo-map" ,fifo-map)))
+ `(("fifo-map" ,fifo-map)))
(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
intuitive syntax and trivial integration.")
(license license:expat)))
+(define-public nlohmann-json-cpp
+ (deprecated-package "nlohmann-json-cpp" json-modern-cxx))
+
(define-public xtl
(package
(name "xtl")
- (version "0.6.4")
+ (version "0.6.8")
(source (origin
(method git-fetch)
(uri
(commit version)))
(sha256
(base32
- "0rwdw43fq7c581m6frzsd06h71sf7abk7danwa3cp6wd6cgkwdbk"))
+ "13gm8vm1b9nzvlcc632f9khnjw1xdjqj6c7k51r173y1hlk0div7"))
(file-name (git-file-name name version))))
(native-inputs
`(("googletest" ,googletest)
(description "xtl is a C++ header-only template library providing basic
tools (containers, algorithms) used by other QuantStack packages.")
(license license:bsd-3)))
+
+(define-public ccls
+ (package
+ (name "ccls")
+ (version "0.20190823.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/MaskRay/ccls")
+ (commit version)))
+ (sha256
+ (base32 "0b2pkpzn576b92zcxpwchpkyw2fww6s69818rx4g9z34kzm35zy5"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ; no check target.
+ (inputs
+ `(("rapidjson" ,rapidjson)))
+ (native-inputs
+ `(("clang" ,clang)
+ ("llvm" ,llvm)))
+ (home-page "https://github.com/MaskRay/ccls")
+ (synopsis "C/C++/Objective-C language server")
+ (description
+ "@code{ccls} is a server implementing the Language Server Protocol (LSP)
+for C, C++ and Objective-C languages. It uses @code{clang} to perform static
+code analysis and supports cross references, hierarchies, completion and
+syntax highlighting. @code{ccls} is derived from @code{cquery} which is not
+maintained anymore.")
+ (license license:asl2.0)))
+
+(define-public gperftools
+ (package
+ (name "gperftools")
+ (version "2.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gperftools/gperftools")
+ (commit (string-append "gperftools-" version))))
+ (sha256
+ (base32 "0amvwrzn5qc0b0jpxpy5g6zkmj97zjh4hhjrd130hsg2lwwcwhy1"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ;; For tests:
+ ("perl" ,perl)))
+ (home-page "https://github.com/gperftools/gperftools")
+ (synopsis "Multi-threaded malloc() and performance analysis tools for C++")
+ (description
+ "@code{gperftools} is a collection of a high-performance multi-threaded
+malloc() implementation plus some thread-friendly performance analysis
+tools:
+
+@itemize
+@item tcmalloc,
+@item heap profiler,
+@item heap checker,
+@item CPU checker.
+@end itemize\n")
+ (license license:bsd-3)))
+
+(define-public cpplint
+ (package
+ (name "cpplint")
+ (version "1.4.4")
+ (source
+ (origin
+ (method git-fetch)
+ ;; Fetch from github instead of pypi, since the test cases are not in
+ ;; the pypi archive.
+ (uri (git-reference
+ (url "https://github.com/cpplint/cpplint")
+ (commit version)))
+ (sha256
+ (base32 "1ns9wbizr10w7rpyp106d7ip68s5nyskr54vw9bij11sci9z0v3j"))
+ (file-name (git-file-name name version))))
+ (build-system python-build-system)
+ (home-page "https://github.com/cpplint/cpplint")
+ (synopsis "Static code checker for C++")
+ (description "@code{cpplint} is a command-line tool to check C/C++ files
+for style issues following Google’s C++ style guide. While Google maintains
+it's own version of the tool, this is a fork that aims to be more responsive
+and make @code{cpplint} usable in wider contexts.")
+ (license license:bsd-3)))
+
+(define-public sobjectizer
+ (package
+ (name "sobjectizer")
+ (version "5.6.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Stiffstream/sobjectizer.git")
+ (commit (string-append "v." version))))
+ (sha256
+ (base32 "0jfai7sqxnnjkms38krm7mssj5l79nb3pllkbyj4j581a7l5j6l5"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'change-directory
+ (lambda _
+ (chdir "dev")
+ #t)))))
+ (home-page "https://stiffstream.com/en/products/sobjectizer.html")
+ (synopsis "Cross-platform actor framework for C++")
+ (description
+ "SObjectizer is a cross-platform \"actor frameworks\" for C++.
+SObjectizer supports not only the Actor Model but also the Publish-Subscribe
+Model and CSP-like channels. The goal of SObjectizer is to simplify
+development of concurrent and multithreaded applications in C++.")
+ (license license:bsd-3)))