summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjgart <jgart@dismail.de>2025-06-19 00:41:15 -0400
committerjgart <jgart@dismail.de>2025-06-19 02:20:36 -0400
commit7c85983c09f66e123df28535fe1d0ace73a2cebc (patch)
treefe20de63df3a4b460102536df77b6aaaf8bcab47
parent568140b72cfc302a5d6bd0834060c8f0e25794b3 (diff)
guix: asdf: Add asdf-build-system/clasp.
* guix/build-system/asdf.scm (asdf-build-system/clasp): New variable. [native-search-paths]: Add search paths. Change-Id: I3631fa0d55112fd6440d2b500dddc4d04ead78e6
-rw-r--r--guix/build-system/asdf.scm31
-rw-r--r--guix/build/lisp-utils.scm2
2 files changed, 31 insertions, 2 deletions
diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm
index ad0fb993f6..5ce63d106f 100644
--- a/guix/build-system/asdf.scm
+++ b/guix/build-system/asdf.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2022 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2025 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,7 +43,8 @@
asdf-build-system/ecl
asdf-build-system/source
sbcl-package->cl-source-package
- sbcl-package->ecl-package))
+ sbcl-package->ecl-package
+ sbcl-package->clasp-package))
;; Commentary:
;;
@@ -247,7 +249,12 @@ set up using CL source package conventions."
(define (lower lisp-type)
(lambda* (name
#:key source inputs outputs native-inputs system target
- (lisp (default-lisp (string->symbol lisp-type)))
+ (lisp (default-lisp
+ (match lisp-type
+ ("sbcl" 'sbcl)
+ ("ecl" 'ecl)
+ ("clasp" 'clasp-cl)
+ (_ error "The LISP provided is not supported at this time."))))
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME"
@@ -340,6 +347,12 @@ set up using CL source package conventions."
(description "The build system for ASDF binary packages using ECL")
(lower (lower "ecl"))))
+(define asdf-build-system/clasp
+ (build-system
+ (name 'asdf/clasp)
+ (description "The build system for ASDF binary packages using Clasp")
+ (lower (lower "clasp"))))
+
(define asdf-build-system/source
(build-system
(name 'asdf/source)
@@ -374,4 +387,18 @@ set up using CL source package conventions."
(transformer
(strip-variant-as-necessary property pkg)))))
+(define sbcl-package->clasp-package
+ (let* ((property 'clasp-variant)
+ (transformer
+ (package-with-build-system asdf-build-system/sbcl
+ asdf-build-system/clasp
+ "sbcl-"
+ "clasp-"
+ #:variant-property property
+ #:phases-transformer
+ 'identity)))
+ (lambda (pkg)
+ (transformer
+ (strip-variant-as-necessary property pkg)))))
+
;;; asdf.scm ends here
diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm
index 646d4a3365..793ee3e163 100644
--- a/guix/build/lisp-utils.scm
+++ b/guix/build/lisp-utils.scm
@@ -106,6 +106,8 @@ with PROGRAM."
("ecl" `(,(%lisp)
,@(spread-statements program "--eval")
"--eval" "(quit)"))
+ ("clasp" `(,(%lisp) "--non-interactive"
+ ,@(spread-statements program "--eval")))
(_ (error "The LISP provided is not supported at this time."))))
(define (compile-systems systems directory operation)