~ruther/guix-cross-shells

guix-cross-shells/modules/cross-shells/cross-packages.scm -rw-r--r-- 1.1 KiB
121e12b3 — Rutherther chore: Make this a channel 5 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
(define-module (cross-shells cross-packages)
 #:use-module (guix records)
 #:use-module (guix monads)
 #:use-module (ice-9 match)
 #:use-module (guix packages)
 #:use-module (guix store)
 #:use-module (guix gexp)
 #:export (cross-package-job
           cross-package-job-package
           cross-package-job-system
           cross-package-job-target))

(define-record-type* <cross-package-job>
  cross-package-job make-cross-package-job
  cross-package-job?
  ; The package to build
  (package cross-package-job-package)
  ; If #f, use the system selected by ungexping
  (system cross-package-job-system (default #f))
  ; If #f, use the target selected by ungexping
  (target cross-package-job-target (default #f)))

(define-gexp-compiler (compile-cross-package-job (cross-package-job <cross-package-job>)
                                                 gexp-system gexp-target)
  (match-record cross-package-job <cross-package-job>
                (package system target)
    (with-monad %store-monad
      (package->cross-derivation package
                                 (or target gexp-target)
                                 (or system gexp-system)))))