Subject: [bug#36477] [PATCH v3 47/48] scripts: system: Add --target option.

From: Mathieu Othacehe <[email-masked]>
Date: Mon, 2 Sep 2019 17:33:32 +0200

* guix/scripts/system.scm (%options): Add target option,
(%default-options): ditto,
(process-action): Rename existing target variable to target-file and pass new
target variable to run-with-store procedure.
---
 guix/scripts/system.scm | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 9fc3a10e98..f8040dd975 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2016 Alex Kost <[email-masked]>
 ;;; Copyright © 2016, 2017, 2018 Chris Marusich <[email-masked]>
-;;; Copyright © 2017 Mathieu Othacehe <[email-masked]>
+;;; Copyright © 2017, 2019 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2018 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2019 Christopher Baines <[email-masked]>
 ;;;
@@ -929,6 +929,8 @@ Some ACTIONS support additional ARGS.\n"))
       --full-boot        for 'vm', make a full boot sequence"))
   (display (G_ "
       --skip-checks      skip file system and initrd module safety checks"))
+  (display (G_ "
+      --target=TRIPLET   cross-build for TRIPLET--e.g., \"armel-linux-gnu\""))
   (display (G_ "
   -v, --verbosity=LEVEL  use the given verbosity LEVEL"))
   (newline)
@@ -1002,6 +1004,10 @@ Some ACTIONS support additional ARGS.\n"))
                  (lambda (opt name arg result)
                    (alist-cons 'system arg
                                (alist-delete 'system result eq?))))
+         (option '("target") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'target arg
+                               (alist-delete 'target result eq?))))
          (option '(#\r "root") #t #f
                  (lambda (opt name arg result)
                    (alist-cons 'gc-root arg result)))
@@ -1010,6 +1016,7 @@ Some ACTIONS support additional ARGS.\n"))
 (define %default-options
   ;; Alist of default option values.
   `((system . ,(%current-system))
+    (target . #f)
     (substitutes? . #t)
     (build-hook? . #t)
     (print-build-trace? . #t)
@@ -1043,6 +1050,7 @@ resulting from command-line parsing."
                         ((x . _) x)))
          (expr        (assoc-ref opts 'expression))
          (system      (assoc-ref opts 'system))
+         (target      (assoc-ref opts 'target))
          (os          (ensure-operating-system
                        (or file expr)
                        (cond
@@ -1059,7 +1067,7 @@ resulting from command-line parsing."
 
          (dry?        (assoc-ref opts 'dry-run?))
          (bootloader? (assoc-ref opts 'install-bootloader?))
-         (target      (match args
+         (target-file (match args
                         ((first second) second)
                         (_ #f)))
          (bootloader-target
@@ -1101,9 +1109,10 @@ resulting from command-line parsing."
                                                       (_ #f))
                                                     opts)
                              #:install-bootloader? bootloader?
-                             #:target target
+                             #:target target-file
                              #:bootloader-target bootloader-target
                              #:gc-root (assoc-ref opts 'gc-root)))))
+        #:target target
         #:system system))
     (warn-about-disk-space)))
 
-- 
2.20.1