gnu: emacs: Byte compile the site-lisp directory.

* gnu/packages/emacs.scm (emacs): Use the (gnu build emacs-utils) module.
Byte compile the site-lisp directory as part of the 'install-site-start'
phase.
(emacs-minimal, emacs-xwidgets, emacs-no-x, emacs-no-x-toolkit): Reset modules
to those of the gnu-build-system.
This commit is contained in:
Maxim Cournoyer 2019-12-05 13:40:32 +09:00
parent 579235562d
commit 4714d0fc1a
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -129,6 +129,11 @@ (define-public emacs
`(#:tests? #f ; no check target
#:configure-flags (list "--with-modules"
"--disable-build-details")
#:modules ((guix build emacs-utils)
(guix build glib-or-gtk-build-system)
(guix build utils))
#:imported-modules ((guix build emacs-utils)
,@%glib-or-gtk-build-system-modules)
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-/bin/pwd
@ -145,7 +150,8 @@ (define-public emacs
;; automatically found.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lisp-dir (string-append out "/share/emacs/site-lisp")))
(lisp-dir (string-append out "/share/emacs/site-lisp"))
(emacs (string-append out "/bin/emacs")))
(copy-file (assoc-ref inputs "guix-emacs.el")
(string-append lisp-dir "/guix-emacs.el"))
(with-output-to-file (string-append lisp-dir "/site-start.el")
@ -158,6 +164,9 @@ (define-public emacs
;; share/emacs/site-lisp union when added to EMACSLOADPATH,
;; which leads to conflicts.
(delete-file (string-append lisp-dir "/subdirs.el"))
;; Byte compile the site-start files.
(parameterize ((%emacs emacs))
(emacs-byte-compile-directory lisp-dir))
#t))))))
(inputs
`(("gnutls" ,gnutls)
@ -326,6 +335,12 @@ (define-public emacs-minimal
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments emacs)
((#:modules _)
`((guix build emacs-utils)
,@%gnu-build-system-modules))
((#:imported-modules _)
`((guix build emacs-utils)
,@%gnu-build-system-modules))
((#:phases phases)
`(modify-phases ,phases
(delete 'install-site-start)))
@ -345,6 +360,12 @@ (define-public emacs-xwidgets
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments emacs)
((#:modules _)
`((guix build emacs-utils)
,@%gnu-build-system-modules))
((#:imported-modules _)
`((guix build emacs-utils)
,@%gnu-build-system-modules))
((#:configure-flags flags ''())
`(cons "--with-xwidgets" ,flags))))
(inputs
@ -358,6 +379,14 @@ (define-public emacs-no-x
(synopsis "The extensible, customizable, self-documenting text
editor (console only)")
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments emacs)
((#:modules _)
`((guix build emacs-utils)
,@%gnu-build-system-modules))
((#:imported-modules _)
`((guix build emacs-utils)
,@%gnu-build-system-modules))))
(inputs (fold alist-delete
(package-inputs emacs)
'("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
@ -376,9 +405,15 @@ (define-public emacs-no-x-toolkit
(inputs (append `(("inotify-tools" ,inotify-tools))
(alist-delete "gtk+" (package-inputs emacs))))
(arguments
`(,@(substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags cf)
`(cons "--with-x-toolkit=no" ,cf)))))))
(substitute-keyword-arguments (package-arguments emacs)
((#:modules _)
`((guix build emacs-utils)
,@%gnu-build-system-modules))
((#:imported-modules _)
`((guix build emacs-utils)
,@%gnu-build-system-modules))
((#:configure-flags cf)
`(cons "--with-x-toolkit=no" ,cf))))))
(define-public guile-emacs
(let ((commit "41120e0f595b16387eebfbf731fff70481de1b4b")