From b5fc075d01d76eafde4d297b146ae43f08e2f347 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 25 Jan 2020 14:21:03 +0100 Subject: 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. --- gnu/packages/cmake.scm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'gnu/packages/cmake.scm') diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 252ea1b065..ce9769981b 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -42,9 +42,11 @@ (define-module (gnu packages cmake) #:use-module (gnu packages file) #:use-module (gnu packages libevent) #:use-module (gnu packages ncurses) + #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages xml) + #:use-module (ice-9 match) #:use-module (srfi srfi-1)) ;;; The "bootstrap" CMake. It is used to build the inputs of 'cmake-minimal' @@ -71,7 +73,6 @@ (define-public cmake-bootstrap ;; "cmcompress" "cmcurl" "cmexpat" - ;; "cmjsoncpp" ;; "cmlibarchive" "cmliblzma" ;; "cmlibuv" @@ -88,7 +89,7 @@ (define-public cmake-bootstrap (string-append "--parallel=" parallel-job-count) (string-append "--prefix=" out) "--system-libs" - "--no-system-jsoncpp" ; FIXME: Circular dependency. + "--no-system-jsoncpp" ;; By default, the man pages and other docs land ;; in PREFIX/man and PREFIX/doc, but we want them ;; in share/{man,doc}. Note that unlike @@ -202,9 +203,21 @@ (define-public cmake-minimal (package (inherit cmake-bootstrap) (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 `(("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. (define-public cmake -- cgit v1.2.3