~ruther/guix-local

1d44b4e544151f9911b3a19b522e5b9584ba7632 — Federico Beffa 10 years ago 7f74a93
build: emacs-utils: Add 'emacs-byte-compile-directory'.

* guix/build/emacs-utils.scm (emacs-byte-compile-directory): New procedure.
1 files changed, 11 insertions(+), 0 deletions(-)

M guix/build/emacs-utils.scm
M guix/build/emacs-utils.scm => guix/build/emacs-utils.scm +11 -0
@@ 22,6 22,7 @@
            emacs-batch-eval
            emacs-batch-edit-file
            emacs-generate-autoloads
            emacs-byte-compile-directory
            emacs-substitute-sexps
            emacs-substitute-variables))



@@ 57,6 58,16 @@
                  (update-directory-autoloads ,directory))))
    (emacs-batch-eval expr)))

(define* (emacs-byte-compile-directory dir #:optional (dependency-dirs '()))
  "Byte compile all files in DIR and its sub-directories.  Before compiling
the files, add DIR and all directories in DEPENDENCY-DIRS to 'load-path'."
  (let ((expr `(progn
                (add-to-list 'load-path ,dir)
                (when ',dependency-dirs
                  (setq load-path (append ',dependency-dirs load-path)))
                (byte-recompile-directory (file-name-as-directory ,dir) 0))))
    (emacs-batch-eval expr)))

(define-syntax emacs-substitute-sexps
  (syntax-rules ()
    "Substitute the S-expression immediately following the first occurrence of