guix: packages: Add &unsupported-cross-compilation-target-error.

* 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
This commit is contained in:
Christopher Baines 2024-07-05 13:45:05 +02:00
parent 832eec2a74
commit b6afc69605
No known key found for this signature in database
GPG key ID: 5E28A33B0B84F577
2 changed files with 17 additions and 0 deletions

View file

@ -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))

View file

@ -763,6 +763,13 @@ (define (port-filename* port)
(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~%")