emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] master 3ba79b2 143/187: Use package--get-deps to get packages dep


From: Michael Albinus
Subject: [elpa] master 3ba79b2 143/187: Use package--get-deps to get packages dependencies.
Date: Wed, 30 Dec 2015 11:50:15 +0000

branch: master
commit 3ba79b2f8f27bd281bef5a334b611143807aca65
Author: Thierry Volpiatto <address@hidden>
Commit: Thierry Volpiatto <address@hidden>

    Use package--get-deps to get packages dependencies.
    
    * async-bytecomp.el (async-bytecomp-get-allowed-pkgs): Use 
package--get-deps.
    Inline it if not available.
---
 async-bytecomp.el |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/async-bytecomp.el b/async-bytecomp.el
index 5cf3f33..2105fee 100644
--- a/async-bytecomp.el
+++ b/async-bytecomp.el
@@ -102,16 +102,34 @@ All *.elc files are systematically deleted before 
proceeding."
     (message "Started compiling asynchronously directory %s" directory)))
 
 (defvar package-archive-contents)
+(defvar package-alist)
 (declare-function package-desc-reqs "package.el" (cl-x))
+(declare-function package--get-deps "package.el" (pkg &optional only))
+
+(unless (fboundp 'package--get-deps)
+  (defun package--get-deps (pkg &optional only)
+    (let* ((pkg-desc (cadr (assq pkg package-alist)))
+           (direct-deps (cl-loop for p in (package-desc-reqs pkg-desc)
+                                 for name = (car p)
+                                 when (assq name package-alist)
+                                 collect name))
+           (indirect-deps (unless (eq only 'direct)
+                            (delete-dups
+                             (cl-loop for p in direct-deps
+                                      append (package--get-deps p))))))
+      (cl-case only
+        (direct   direct-deps)
+        (separate (list direct-deps indirect-deps))
+        (indirect indirect-deps)
+        (t        (delete-dups (append direct-deps indirect-deps)))))))
 
 (defun async-bytecomp-get-allowed-pkgs ()
   (when async-bytecomp-allowed-packages
     (cl-loop for p in async-bytecomp-allowed-packages
-          for pkg-desc = (car (assoc-default p package-archive-contents))
-          append (mapcar 'car (package-desc-reqs pkg-desc)) into reqs
-          finally return
-          (cl-remove-duplicates
-           (append async-bytecomp-allowed-packages reqs)))))
+             append (package--get-deps p) into reqs
+             finally return
+             (delete-dups
+              (append async-bytecomp-allowed-packages reqs)))))
 
 (defadvice package--compile (around byte-compile-async activate)
   (let ((cur-package (package-desc-name pkg-desc)))



reply via email to

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