From fda77fbd33933065a3d18f4db60fbf53f5908970 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Fri, 4 Jan 2019 22:34:56 +0100 Subject: [PATCH 5/5] gnu: Use package-elisp-from-package for clangs emacs lisp files Use package-elisp-from-package for emacs-clang-format and emacs-clang-rename. Also remove package-from-clang-elisp-file as it is not needed anymore. * gnu/packages/llvm.scm (emacs-clang-format): Use package-elisp-from-package * gnu/packages/llvm.scm (emacs-clang-rename): Use package-elisp-from-package * gnu/packages/llvm.scm (package-from-clang-elisp-file): Remove function --- gnu/packages/llvm.scm | 70 ++++++++++--------------------------------- 1 file changed, 15 insertions(+), 55 deletions(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 05147b665..c846e2758 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages gcc) #:use-module (gnu packages bootstrap) ;glibc-dynamic-linker #:use-module (gnu packages compression) + #:use-module (gnu packages emacs) #:use-module (gnu packages libffi) #:use-module (gnu packages perl) #:use-module (gnu packages python) @@ -479,69 +480,28 @@ code analysis tools.") "This package provides a Python binding to LLVM for use in Numba.") (license license:bsd-3))) -;;; Returns a package definition that packages an emacs-lisp file from the -;;; clang source. The package has the name PKGNAME and packages the file -;;; SRC-FILE from the clang source in its root directory with the name -;;; TARGET-FILE where SUBST substitutions will be performed on the elisp file -;;; and SYN and DESC as the package synopsis an description. -(define (package-from-clang-elisp-file pkgname src-file target-file subst syn desc) - (package - (inherit clang) - (name pkgname) - (source (let ((orig (package-source clang))) - (origin - (method (origin-method orig)) - (uri (origin-uri orig)) - (sha256 (origin-sha256 orig)) - (file-name (string-append pkgname "-" (package-version clang))) - (modules '((guix build utils) - (srfi srfi-1) - (ice-9 ftw))) - (snippet - `(begin - ;; Copy target file to source root and delete all other files - (copy-file (string-append ,src-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 - ,subst)) - #t))))) - (synopsis syn) - (description desc))) - (define-public emacs-clang-format - (package-from-clang-elisp-file + (package-elisp-from-package + clang "emacs-clang-format" "tools/clang-format/clang-format.el" - "clang-format.el" - '("clang-format-executable" - (string-append clang "/bin/clang-format")) - "Format code using clang-format" - "This package allows to filter code through @code{clang-format} + #:inputs `(("clang" ,clang)) + #:substitutions '("clang-format-executable" + (string-append (assoc-ref inputs "clang") "/bin/clang-format")) + #:synopsis "Format code using clang-format" + #:description "This package allows to filter code through @code{clang-format} to fix its formatting. @code{clang-format} is a tool that formats 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-from-clang-elisp-file + (package-elisp-from-package + clang "emacs-clang-rename" "tools/clang-rename/clang-rename.el" - "clang-rename.el" - '("clang-rename-binary" - (string-append clang "/bin/clang-rename")) - "Rename every occurrence of a symbol using clang-rename" - "This package renames every occurrence of a symbol at point + #:inputs `(("clang" ,clang)) + #:substitutions '("clang-rename-binary" + (string-append (assoc-ref inputs "clang") "/bin/clang-rename")) + #: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