diff mbox series

[bug#70985,v2,3/6] guix: packages: Add &unsupported-cross-compilation-target-error.

Message ID e47f9d8e7020f099f5578027ac81ae81c531d046.1720195563.git.mail@cbaines.net
State New
Headers show
Series [bug#70985,v2,1/6] guix: packages: Add new &package-unsupported-target-error. | expand

Commit Message

Christopher Baines July 5, 2024, 4:06 p.m. UTC
* guix/packages.scm (&unsupported-cross-compilation-target-error): New
variable.
* guix/ui.scm (call-with-error-handling): Handle this new condition type.

Change-Id: I9e7782ee4799b5fecb3c890a75008c35c003f55d
---
 guix/packages.scm | 10 ++++++++++
 guix/ui.scm       |  7 +++++++
 2 files changed, 17 insertions(+)
diff mbox series

Patch

diff --git a/guix/packages.scm b/guix/packages.scm
index e793714f2e..c953db9a03 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -160,6 +160,11 @@  (define-module (guix packages)
             %cuirass-supported-systems
             supported-package?
 
+            &unsupported-cross-compilation-target-error
+            unsupported-cross-compilation-target-error?
+            unsupported-cross-compilation-target-error-build-system
+            unsupported-cross-compilation-target-error-target
+
             &package-error
             package-error?
             package-error-package
@@ -834,6 +839,11 @@  (define-syntax-rule (this-package-native-input name)
 
 ;; Error conditions.
 
+(define-condition-type &unsupported-cross-compilation-target-error &error
+  unsupported-cross-compilation-target-error?
+  (build-system unsupported-cross-compilation-target-error-build-system)
+  (target unsupported-cross-compilation-target-error-target))
+
 (define-condition-type &package-error &error
   package-error?
   (package package-error-package))
diff --git a/guix/ui.scm b/guix/ui.scm
index 0bb1b3b3ba..9db6f6e9d7 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -763,6 +763,13 @@  (define (call-with-error-handling thunk)
                        (location->string loc)
                        (package-full-name package)
                        (package-unsupported-target-error-target c))))
+             ((unsupported-cross-compilation-target-error? c)
+              (let ((build-system
+                      (unsupported-cross-compilation-target-error-build-system c))
+                    (target (unsupported-cross-compilation-target-error-target c)))
+                (leave (G_ "the `~a' build system: does not support target `~a'~%")
+                       (build-system-name build-system)
+                       target)))
              ((gexp-input-error? c)
               (let ((input (gexp-error-invalid-input c)))
                 (leave (G_ "~s: invalid G-expression input~%")