raco setup: fix dependency checking and PLTCOMPILEDROOTS

Closes PR 14537
This commit is contained in:
Matthew Flatt 2014-06-02 15:45:22 +01:00
parent dc97b85d44
commit 5ea04493a2

View File

@ -365,6 +365,22 @@
(module-compiled-submodules mod-code #t) (module-compiled-submodules mod-code #t)
(module-compiled-submodules mod-code #f))))))) (module-compiled-submodules mod-code #f)))))))
;; ----------------------------------------
(define (find-compiled-directories path)
;; Find all directories that can hold compiled bytecode for `path`
(filter
values
(for*/list ([root (in-list (current-compiled-file-roots))]
[mode (in-list (use-compiled-file-paths))])
(define dir (build-path path mode))
(define compiled-dir
(cond
[(eq? root 'same) dir]
[(relative-path? root) (build-path root dir)]
[else (reroot-path dir root)]))
(and (directory-exists? compiled-dir)
compiled-dir))))
;; ---------------------------------------- ;; ----------------------------------------
(define main-db-file (build-path (find-doc-dir) "docindex.sqlite")) (define main-db-file (build-path (find-doc-dir) "docindex.sqlite"))
(define user-db-file (build-path (find-user-doc-dir) "docindex.sqlite")) (define user-db-file (build-path (find-user-doc-dir) "docindex.sqlite"))
@ -411,9 +427,9 @@
[coll-main? (in-list coll-main?s)]) [coll-main? (in-list coll-main?s)])
(when verbose? (when verbose?
(setup-printf #f " checking ~a" path)) (setup-printf #f " checking ~a" path))
(define dir (build-path path "compiled")) (define dirs (find-compiled-directories path))
(when (directory-exists? dir) (for ([dir (in-list dirs)])
(define pkg (path->pkg dir #:cache path-cache)) (define pkg (path->pkg path #:cache path-cache))
(when (and pkg (when (and pkg
(not (hash-ref skip-pkgs pkg #f))) (not (hash-ref skip-pkgs pkg #f)))
(for ([f (directory-list dir)]) (for ([f (directory-list dir)])