From 5fe3ad766f18a2f8f5b138837b690fb3d873f17d Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Tue, 21 Jul 2020 15:48:35 +0900 Subject: [PATCH] avoid duplicate libraries --- lib/chibi/snow/commands.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/chibi/snow/commands.scm b/lib/chibi/snow/commands.scm index 44fc18fd..454dc519 100644 --- a/lib/chibi/snow/commands.scm +++ b/lib/chibi/snow/commands.scm @@ -509,8 +509,11 @@ (files '()) (lib-dirs '()) (test test) - (extracted-tests? #f)) + (extracted-tests? #f) + (seen '())) (cond + ((and (pair? ls) (member (caar ls) seen)) + (lp (cdr ls) progs res files lib-dirs test extracted-tests? seen)) ((pair? ls) (let* ((lib+files (extract-library cfg (caar ls))) (lib (car lib+files)) @@ -533,7 +536,8 @@ (delete-duplicates (cons (library-path-base (caar ls) name) lib-dirs)) test - extracted-tests?))) + extracted-tests? + (cons (caar ls) seen)))) ((pair? progs) (lp ls (cdr progs) @@ -544,7 +548,8 @@ (cons (car progs) files) lib-dirs test - extracted-tests?)) + extracted-tests? + seen)) ((null? res) (die 2 "No packages generated")) ((and (not test) @@ -567,7 +572,7 @@ "run-tests.scm" ,(test-program-from-libraries tests-from-libraries)) #t) - (lp ls progs res files lib-dirs test #t)))) + (lp ls progs res files lib-dirs test #t seen)))) (else (let* ((docs (package-docs cfg spec libs lib-dirs)) (desc (package-description cfg spec libs docs))