Compile plugins in the correct order

Compile order will affect some packages, so `bin/doom compile :plugins`
will now byte-compile plugins in the order they're declared in, but
after their dependencies.
This commit is contained in:
Henrik Lissner 2018-06-12 12:58:47 +02:00
parent c6324da59d
commit 98d2a35a59
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -561,9 +561,18 @@ If RECOMPILE-P is non-nil, only recompile out-of-date files."
(":core" (push doom-core-dir targets)) (":core" (push doom-core-dir targets))
(":private" (push doom-private-dir targets)) (":private" (push doom-private-dir targets))
(":plugins" (":plugins"
(dolist (file (doom-files-in package-user-dir :match "\\.elc$")) (doom-initialize-packages)
(ignore-errors (delete-file file))) (let (visited)
(byte-recompile-directory package-user-dir 0 t) (dolist (name (append doom-core-packages (mapcar #'car doom-packages)))
(unless (memq name visited)
(when-let* ((desc (cadr (assq name package-alist))))
(cl-loop for dep in (package--get-deps name)
if (and (not (memq dep visited))
(assq dep package-alist))
do (package--compile (cadr it))
and do (push dep visited))
(package--compile desc)
(push name visited)))))
(setq compile-plugins-p t (setq compile-plugins-p t
modules (delete ":plugins" modules))) modules (delete ":plugins" modules)))
((pred file-directory-p) ((pred file-directory-p)