build-system/asdf: Always pre-load the system's definition file.
* guix/build-system/asdf.scm (asdf-build)[builder]: Pass a default `#:asd-file' argument to the build procedure, using the system's name. * guix/build/asdf-build-system.scm (build, check): Adjust to assume that `asd-file' will always be a string. * guix/build/lisp-utils.scm (compile-system, system-dependencies) (test-system): Likewise.master
parent
457702b1d9
commit
0186a463d0
|
@ -294,7 +294,7 @@ set up using CL source package conventions."
|
|||
(derivation->output-path source))
|
||||
((source) source)
|
||||
(source source))
|
||||
#:asd-file ,asd-file
|
||||
#:asd-file ,(or asd-file (string-append system-name ".asd"))
|
||||
#:asd-system-name ,system-name
|
||||
#:system ,system
|
||||
#:tests? ,tests?
|
||||
|
|
|
@ -118,17 +118,11 @@ valid."
|
|||
(translations (wrap-output-translations
|
||||
`(,(output-translation source-path
|
||||
out))))
|
||||
(asd-file (and=> asd-file
|
||||
(cut source-asd-file out asd-system-name <>))))
|
||||
(asd-file (source-asd-file out asd-system-name asd-file)))
|
||||
|
||||
(setenv "ASDF_OUTPUT_TRANSLATIONS"
|
||||
(replace-escaped-macros (format #f "~S" translations)))
|
||||
|
||||
;; We don't need this if we have the asd file, and it can mess with the
|
||||
;; load ordering we're trying to enforce
|
||||
(unless asd-file
|
||||
(prepend-to-source-registry (string-append source-path "//")))
|
||||
|
||||
(setenv "HOME" out) ; ecl's asdf sometimes wants to create $HOME/.cache
|
||||
|
||||
(compile-system asd-system-name asd-file)
|
||||
|
@ -144,8 +138,7 @@ valid."
|
|||
#:allow-other-keys)
|
||||
"Test the system."
|
||||
(let* ((out (library-output outputs))
|
||||
(asd-file (and=> asd-file
|
||||
(cut source-asd-file out asd-system-name <>))))
|
||||
(asd-file (source-asd-file out asd-system-name asd-file)))
|
||||
(if tests?
|
||||
(test-system asd-system-name asd-file)
|
||||
(format #t "test suite not run~%")))
|
||||
|
|
|
@ -112,15 +112,12 @@ with PROGRAM."
|
|||
|
||||
(define (compile-system system asd-file)
|
||||
"Use a lisp implementation to compile SYSTEM using asdf. Load ASD-FILE
|
||||
first if SYSTEM is defined there."
|
||||
first."
|
||||
(lisp-eval-program
|
||||
`(progn
|
||||
(require :asdf)
|
||||
(in-package :asdf)
|
||||
,@(if asd-file
|
||||
`((load ,asd-file))
|
||||
'())
|
||||
(in-package :cl-user)
|
||||
(let ((*package* (find-package :asdf)))
|
||||
(load ,asd-file))
|
||||
(funcall (find-symbol
|
||||
(symbol-name :operate)
|
||||
(symbol-name :asdf))
|
||||
|
@ -131,15 +128,13 @@ first if SYSTEM is defined there."
|
|||
|
||||
(define (system-dependencies system asd-file)
|
||||
"Return the dependencies of SYSTEM, as reported by
|
||||
asdf:system-depends-on. First load the system's ASD-FILE, if necessary."
|
||||
asdf:system-depends-on. First load the system's ASD-FILE."
|
||||
(define deps-file ".deps.sexp")
|
||||
(define program
|
||||
`(progn
|
||||
(require :asdf)
|
||||
,@(if asd-file
|
||||
`((let ((*package* (find-package :asdf)))
|
||||
(load ,asd-file)))
|
||||
'())
|
||||
(let ((*package* (find-package :asdf)))
|
||||
(load ,asd-file))
|
||||
(with-open-file
|
||||
(stream ,deps-file :direction :output)
|
||||
(format stream
|
||||
|
@ -183,16 +178,12 @@ asdf:system-depends-on. First load the system's ASD-FILE, if necessary."
|
|||
'())))
|
||||
|
||||
(define (test-system system asd-file)
|
||||
"Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILE first
|
||||
if SYSTEM is defined there."
|
||||
"Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILE first."
|
||||
(lisp-eval-program
|
||||
`(progn
|
||||
(require :asdf)
|
||||
(in-package :asdf)
|
||||
,@(if asd-file
|
||||
`((load ,asd-file))
|
||||
'())
|
||||
(in-package :cl-user)
|
||||
(let ((*package* (find-package :asdf)))
|
||||
(load ,asd-file))
|
||||
(funcall (find-symbol
|
||||
(symbol-name :test-system)
|
||||
(symbol-name :asdf))
|
||||
|
|
Reference in New Issue