jgart pushed a commit to branch lisp-team-asdf-build-system-clasp
in repository guix.

commit 7e2ff8dd20ea8506a0842482deaac96ee7f5f326
Author: jgart <[email protected]>
AuthorDate: Mon Dec 30 19:03:32 2024 -0600

    gnu: Add asdf-build-system/clasp.
    
    * guix/build-system/asdf.scm (asdf-build-system/clasp): New variable.
    [native-search-paths]: Add search paths.
    
    Change-Id: I8a868e56a2795cfad05c474a039ab755666ec827
---
 gnu/packages/lisp.scm      |  7 +++++++
 guix/build-system/asdf.scm | 24 +++++++++++++++++++++++-
 guix/build/lisp-utils.scm  |  2 ++
 3 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 9cc630eec2..fe80c63d9a 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -440,6 +440,13 @@ interface.")
          (replace 'install
            (lambda* _
              (invoke "ninja" "-C" "build" "install"))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "XDG_DATA_DIRS")
+            (files '("share")))
+           (search-path-specification
+            (variable "XDG_CONFIG_DIRS")
+            (files '("etc")))))
     (home-page "https://clasp-developers.github.io/";)
     (synopsis "Common Lisp implementation based on LLVM and C++")
     (description "Clasp is a new Common Lisp implementation that seamlessly
diff --git a/guix/build-system/asdf.scm b/guix/build-system/asdf.scm
index 26b5a5008a..bb91e7e575 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 <[email protected]>
 ;;; Copyright © 2021 Ludovic Courtès <[email protected]>
 ;;; Copyright © 2022 Pierre Neidhardt <[email protected]>
+;;; Copyright © 2024 jgart <[email protected]>
 ;;;
 ;;; 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:
 ;;
@@ -336,6 +338,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)
@@ -370,4 +378,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..46ca676c74 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)

Reply via email to