gnu: cmake-minimal: Remove bundled jsoncpp.

* gnu/packages/cmake.scm (cmake-minimal)[source](snippet): New field.  Purge
bundled jsoncpp.
[inputs]: Add JSONCPP.
[arguments]: Adjust accordingly.
* gnu/packages/serialization.scm (jsoncpp)[arguments]: For native builds, use
CMAKE-BOOTSTRAP.
This commit is contained in:
Marius Bakke 2020-01-25 14:21:03 +01:00
parent 7c1ea9316a
commit b5fc075d01
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
2 changed files with 21 additions and 4 deletions

View file

@ -42,9 +42,11 @@ (define-module (gnu packages cmake)
#:use-module (gnu packages file) #:use-module (gnu packages file)
#:use-module (gnu packages libevent) #:use-module (gnu packages libevent)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx) #:use-module (gnu packages sphinx)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
;;; The "bootstrap" CMake. It is used to build the inputs of 'cmake-minimal' ;;; The "bootstrap" CMake. It is used to build the inputs of 'cmake-minimal'
@ -71,7 +73,6 @@ (define-public cmake-bootstrap
;; "cmcompress" ;; "cmcompress"
"cmcurl" "cmcurl"
"cmexpat" "cmexpat"
;; "cmjsoncpp"
;; "cmlibarchive" ;; "cmlibarchive"
"cmliblzma" "cmliblzma"
;; "cmlibuv" ;; "cmlibuv"
@ -88,7 +89,7 @@ (define-public cmake-bootstrap
(string-append "--parallel=" parallel-job-count) (string-append "--parallel=" parallel-job-count)
(string-append "--prefix=" out) (string-append "--prefix=" out)
"--system-libs" "--system-libs"
"--no-system-jsoncpp" ; FIXME: Circular dependency. "--no-system-jsoncpp"
;; By default, the man pages and other docs land ;; By default, the man pages and other docs land
;; in PREFIX/man and PREFIX/doc, but we want them ;; in PREFIX/man and PREFIX/doc, but we want them
;; in share/{man,doc}. Note that unlike ;; in share/{man,doc}. Note that unlike
@ -202,9 +203,21 @@ (define-public cmake-minimal
(package (package
(inherit cmake-bootstrap) (inherit cmake-bootstrap)
(name "cmake-minimal") (name "cmake-minimal")
(source (origin
(inherit (package-source cmake-bootstrap))
(snippet
(match (origin-snippet (package-source cmake-bootstrap))
((begin exp ...)
(append '(begin (delete-file-recursively "Utilities/cmjsoncpp"))
exp))))))
(native-inputs (native-inputs
`(("curl" ,curl) `(("curl" ,curl)
,@(alist-delete "curl" (package-native-inputs cmake-bootstrap)))))) ("jsoncpp" ,jsoncpp)
,@(alist-delete "curl" (package-native-inputs cmake-bootstrap))))
(arguments
(substitute-keyword-arguments (package-arguments cmake-bootstrap)
((#:configure-flags flags ''())
`(delete "--no-system-jsoncpp" ,flags))))))
;;; The "user-facing" CMake, now with manuals and HTML documentation. ;;; The "user-facing" CMake, now with manuals and HTML documentation.
(define-public cmake (define-public cmake

View file

@ -40,6 +40,7 @@ (define-module (gnu packages serialization)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cmake)
#:use-module (gnu packages cpp) #:use-module (gnu packages cpp)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
@ -296,7 +297,10 @@ (define-public jsoncpp
"037d1b1qdmn3rksmn1j71j26bv4hkjv7sn7da261k853xb5899sg")))) "037d1b1qdmn3rksmn1j71j26bv4hkjv7sn7da261k853xb5899sg"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES"))) `(#:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES")
,@(if (%current-target-system)
'()
`(#:cmake ,cmake-bootstrap))))
(synopsis "C++ library for interacting with JSON") (synopsis "C++ library for interacting with JSON")
(description "JsonCpp is a C++ library that allows manipulating JSON values, (description "JsonCpp is a C++ library that allows manipulating JSON values,
including serialization and deserialization to and from strings. It can also including serialization and deserialization to and from strings. It can also