emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/package+vc 8638aace3f 1/3: Allow ignoring files during byte comp


From: Philip Kaludercic
Subject: feature/package+vc 8638aace3f 1/3: Allow ignoring files during byte compilation
Date: Thu, 11 Aug 2022 07:06:46 -0400 (EDT)

branch: feature/package+vc
commit 8638aace3fbe01529f33870f469fa60bf5e43ee7
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    Allow ignoring files during byte compilation
    
    * bytecomp.el (byte-compile-ignore-files): Add new variable.
    (byte-recompile-directory): Respect 'byte-compile-ignore-files'.
---
 lisp/emacs-lisp/bytecomp.el | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 1ecd77f751..b0ace9dae6 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1876,6 +1876,9 @@ Files in subdirectories of DIRECTORY are processed also."
   (interactive "DByte force recompile (directory): ")
   (byte-recompile-directory directory nil t))
 
+(defvar byte-compile-ignore-files nil
+  "List of regexps for files to ignore during byte compilation.")
+
 ;;;###autoload
 (defun byte-recompile-directory (directory &optional arg force follow-symlinks)
   "Recompile every `.el' file in DIRECTORY that needs recompilation.
@@ -1932,14 +1935,23 @@ also be compiled."
                      ;; This file is a subdirectory.  Handle them differently.
                      (or (null arg) (eq 0 arg)
                          (y-or-n-p (concat "Check " source "? ")))
-                     (setq directories (nconc directories (list source))))
+                     (setq directories (nconc directories (list source)))
+                      ;; Directory is requested to be ignored
+                      (string-match-p
+                       (regexp-opt byte-compile-ignore-files)
+                       source)
+                      (setq directories (nconc directories (list source))))
                ;; It is an ordinary file.  Decide whether to compile it.
                (if (and (string-match emacs-lisp-file-regexp source)
                        ;; The next 2 tests avoid compiling lock files
                         (file-readable-p source)
                        (not (string-match "\\`\\.#" file))
                         (not (auto-save-file-name-p source))
-                        (not (member source (dir-locals--all-files 
directory))))
+                        (not (member source (dir-locals--all-files directory)))
+                        ;; File is requested to be ignored
+                        (string-match-p
+                         (regexp-opt byte-compile-ignore-files)
+                         source))
                    (progn (cl-incf
                            (pcase (byte-recompile-file source force arg)
                              ('no-byte-compile skip-count)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]