From 93a8266610510e67103d06a852b97feba3d3c4e9 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Fri, 30 Nov 2018 15:01:10 +0100 Subject: [PATCH 2/5] gnu: Shrink source for emacs-clang-rename. To build emacs-clang-rename only the `clang-rename.el` file is needed. In order to save disk space and make clear that this is the only file needed modify the downloaded source to only contain `clang-rename.el`. * gnu/packages/emacs.scm (emacs-clang-rename): Add source snippet. * gnu/packages/emacs.scm (emacs-clang-rename): Modify phases. --- gnu/packages/llvm.scm | 59 ++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index cf7c44600..530d6599b 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -522,23 +522,42 @@ C/C++/Obj-C code according to a set of style options, see @url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}.")))) (define-public emacs-clang-rename - (package - (inherit clang) - (name "emacs-clang-rename") - (build-system emacs-build-system) - (inputs - `(("clang" ,clang))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "clang"))) - (copy-file "tools/clang-rename/clang-rename.el" "clang-rename.el") - (emacs-substitute-variables "clang-rename.el" - ("clang-rename-binary" - (string-append clang "/bin/clang-rename")))) - #t))))) - (synopsis "Rename every occurrence of a symbol using clang-rename") - (description "This package renames every occurrence of a symbol at point -using @code{clang-rename}."))) + (let ((target-file "clang-rename.el")) + (package + (inherit clang) + (name "emacs-clang-rename") + (source (let ((orig (package-source clang))) + (origin + (method (origin-method orig)) + (uri (origin-uri orig)) + (sha256 (origin-sha256 orig)) + (file-name (string-append name + (package-version clang))) + (modules '((guix build utils) + (srfi srfi-1) + (ice-9 ftw))) + (snippet + `(begin + (copy-file (string-append "tools/clang-rename/" ,target-file) + ,target-file) + (map delete-file-recursively + (fold delete + (scandir ".") + '("." ".." ,target-file))) + #t))))) + (build-system emacs-build-system) + (inputs + `(("clang" ,clang))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((clang (assoc-ref inputs "clang"))) + (emacs-substitute-variables ,target-file + ("clang-rename-binary" + (string-append clang "/bin/clang-rename")))) + #t))))) + (synopsis "Rename every occurrence of a symbol using clang-rename") + (description "This package renames every occurrence of a symbol at point +using @code{clang-rename}.")))) -- 2.20.1