summaryrefslogtreecommitdiff
path: root/guix/build
diff options
context:
space:
mode:
authorGuillaume Le Vaillant <glv@posteo.net>2022-08-03 11:46:17 +0200
committerGuillaume Le Vaillant <glv@posteo.net>2022-08-03 16:45:54 +0200
commitc232375340354f5f137b7495a85ed1df1e0f74c5 (patch)
treefc05112a0d2c733a371e461066bf00643f5c6845 /guix/build
parent369377a0fb113b0f26fb518c7f8653cbd997e23a (diff)
build-system: asdf: Add asd-operation parameter.
The 'asd-operation' parameter can be used to specify the ASDF operation to use in the build phase. It's default value is "load-system". * guix/build-system/asdf.scm (package-with-build-system, asdf-build): Add 'asd-operation' parameter. * guix/build/asdf-buid-system.scm (build): Add 'asd-operation' parameter and use it. * guix/build/lisp-utils.scm (compile-systems): Add 'asd-operation' parameter and use it.
Diffstat (limited to 'guix/build')
-rw-r--r--guix/build/asdf-build-system.scm8
-rw-r--r--guix/build/lisp-utils.scm12
2 files changed, 10 insertions, 10 deletions
diff --git a/guix/build/asdf-build-system.scm b/guix/build/asdf-build-system.scm
index 0a3c55c6c4..92154e7d34 100644
--- a/guix/build/asdf-build-system.scm
+++ b/guix/build/asdf-build-system.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
@@ -181,7 +181,7 @@ if it's present in the native-inputs."
(setenv "XDG_CONFIG_DIRS" (string-append out "/etc")))
#t)
-(define* (build #:key outputs inputs asd-systems
+(define* (build #:key outputs inputs asd-systems asd-operation
#:allow-other-keys)
"Compile the system."
(let* ((out (library-output outputs))
@@ -193,7 +193,9 @@ if it's present in the native-inputs."
(setenv "ASDF_OUTPUT_TRANSLATIONS"
(replace-escaped-macros (format #f "~S" translations)))
(setenv "HOME" out) ; ecl's asdf sometimes wants to create $HOME/.cache
- (compile-systems asd-systems (lisp-source-directory out system-name)))
+ (compile-systems asd-systems
+ (lisp-source-directory out system-name)
+ asd-operation))
#t)
(define* (check #:key tests? outputs inputs asd-test-systems
diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm
index 7c5d865338..646d4a3365 100644
--- a/guix/build/lisp-utils.scm
+++ b/guix/build/lisp-utils.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
@@ -108,9 +108,8 @@ with PROGRAM."
"--eval" "(quit)"))
(_ (error "The LISP provided is not supported at this time."))))
-(define (compile-systems systems directory)
- "Use a lisp implementation to compile the SYSTEMS using asdf.
-Load ASD-FILES first."
+(define (compile-systems systems directory operation)
+ "Use a lisp implementation to compile the SYSTEMS using asdf."
(lisp-eval-program
`((require :asdf)
(asdf:initialize-source-registry
@@ -119,12 +118,11 @@ Load ASD-FILES first."
:ensure-directory t))
:inherit-configuration))
,@(map (lambda (system)
- `(asdf:load-system ,system))
+ (list (string->symbol (string-append "asdf:" operation)) system))
systems))))
(define (test-system test-systems directory)
- "Use a lisp implementation to test SYSTEM using asdf. Load ASD-FILES first.
-Also load TEST-ASD-FILE if necessary."
+ "Use a lisp implementation to test the TEST-SYSTEMS using asdf."
(lisp-eval-program
`((require :asdf)
(asdf:initialize-source-registry