derivations: Add a search path parameter for module derivations.

* guix/derivations.scm (imported-modules, compiled-modules): Add a
  `module-path' parameter.  Use it instead of %LOAD-PATH.
This commit is contained in:
Ludovic Courtès 2013-02-20 21:08:09 +01:00
parent f6d7be1e47
commit 8dcb0c55ab

@ -558,9 +558,10 @@ system, imported, and appears under FINAL-PATH in the resulting store path."
(define* (imported-modules store modules (define* (imported-modules store modules
#:key (name "module-import") #:key (name "module-import")
(system (%current-system)) (system (%current-system))
(guile (%guile-for-build))) (guile (%guile-for-build))
(module-path %load-path))
"Return a derivation that contains the source files of MODULES, a list of "Return a derivation that contains the source files of MODULES, a list of
module names such as `(ice-9 q)'. All of MODULES must be in the current module names such as `(ice-9 q)'. All of MODULES must be in the MODULE-PATH
search path." search path."
;; TODO: Determine the closure of MODULES, build the `.go' files, ;; TODO: Determine the closure of MODULES, build the `.go' files,
;; canonicalize the source files through read/write, etc. ;; canonicalize the source files through read/write, etc.
@ -568,7 +569,7 @@ search path."
(let ((f (string-append (let ((f (string-append
(string-join (map symbol->string m) "/") (string-join (map symbol->string m) "/")
".scm"))) ".scm")))
(cons f (search-path %load-path f)))) (cons f (search-path module-path f))))
modules))) modules)))
(imported-files store files #:name name #:system system (imported-files store files #:name name #:system system
#:guile guile))) #:guile guile)))
@ -576,13 +577,15 @@ search path."
(define* (compiled-modules store modules (define* (compiled-modules store modules
#:key (name "module-import-compiled") #:key (name "module-import-compiled")
(system (%current-system)) (system (%current-system))
(guile (%guile-for-build))) (guile (%guile-for-build))
(module-path %load-path))
"Return a derivation that builds a tree containing the `.go' files "Return a derivation that builds a tree containing the `.go' files
corresponding to MODULES. All the MODULES are built in a context where corresponding to MODULES. All the MODULES are built in a context where
they can refer to each other." they can refer to each other."
(let* ((module-drv (imported-modules store modules (let* ((module-drv (imported-modules store modules
#:system system #:system system
#:guile guile)) #:guile guile
#:module-path module-path))
(module-dir (derivation-path->output-path module-drv)) (module-dir (derivation-path->output-path module-drv))
(files (map (lambda (m) (files (map (lambda (m)
(let ((f (string-join (map symbol->string m) (let ((f (string-join (map symbol->string m)