avoid duplicate libraries

This commit is contained in:
Alex Shinn 2020-07-21 15:48:35 +09:00
parent 97ea47686e
commit 5fe3ad766f

View file

@ -509,8 +509,11 @@
(files '()) (files '())
(lib-dirs '()) (lib-dirs '())
(test test) (test test)
(extracted-tests? #f)) (extracted-tests? #f)
(seen '()))
(cond (cond
((and (pair? ls) (member (caar ls) seen))
(lp (cdr ls) progs res files lib-dirs test extracted-tests? seen))
((pair? ls) ((pair? ls)
(let* ((lib+files (extract-library cfg (caar ls))) (let* ((lib+files (extract-library cfg (caar ls)))
(lib (car lib+files)) (lib (car lib+files))
@ -533,7 +536,8 @@
(delete-duplicates (delete-duplicates
(cons (library-path-base (caar ls) name) lib-dirs)) (cons (library-path-base (caar ls) name) lib-dirs))
test test
extracted-tests?))) extracted-tests?
(cons (caar ls) seen))))
((pair? progs) ((pair? progs)
(lp ls (lp ls
(cdr progs) (cdr progs)
@ -544,7 +548,8 @@
(cons (car progs) files) (cons (car progs) files)
lib-dirs lib-dirs
test test
extracted-tests?)) extracted-tests?
seen))
((null? res) ((null? res)
(die 2 "No packages generated")) (die 2 "No packages generated"))
((and (not test) ((and (not test)
@ -567,7 +572,7 @@
"run-tests.scm" "run-tests.scm"
,(test-program-from-libraries tests-from-libraries)) ,(test-program-from-libraries tests-from-libraries))
#t) #t)
(lp ls progs res files lib-dirs test #t)))) (lp ls progs res files lib-dirs test #t seen))))
(else (else
(let* ((docs (package-docs cfg spec libs lib-dirs)) (let* ((docs (package-docs cfg spec libs lib-dirs))
(desc (package-description cfg spec libs docs)) (desc (package-description cfg spec libs docs))