Subject: [bug#50201] [PATCH 31/52] gnu: json-glib: Don't build gtk documentation when cross-compiling.

From: Maxime Devos <[email-masked]>
Date: Wed, 25 Aug 2021 20:03:11 +0200

* gnu/packages/gnome.scm
  (json-glib)[arguments]<#:configue-flags>: Set gtk_doc=disables when
  cross-compiling.
  (json-glib)[arguments]<#:phases>{move-docs}: Don't run when cross-compiling
  ...
  (json-glib)[arguments]<#:phases>{stub-docs}: ... instead, create an empty
  directory where the documentation would be.
---
 gnu/packages/gnome.scm | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c0b6d010c7..febbe10ee8 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4577,7 +4577,12 @@ configuration storage systems.")
        #:configure-flags
        (list
         "-Ddocs=true"
-        "-Dman=true")
+        "-Dman=true"
+        ,@(if (%current-target-system)
+              ;; If enabled, gtkdoc-scangobj will try to execute a
+              ;; cross-compiled binary.
+              '("-Dgtk_doc=disabled")
+              '()))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-docbook
@@ -4601,15 +4606,21 @@ configuration storage systems.")
                                                  'inputs) "docbook-xsl")
                                  "/xml/xsl/docbook-xsl-1.79.2/"))))
              #t))
-         (add-after 'install 'move-docs
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file
-                (string-append out "/share/gtk-doc")
-                (string-append doc "/share/gtk-doc"))
-               #t))))))
+         ;; When cross-compiling, there are no docs to move.
+         ,(if (%current-target-system)
+              '(add-after 'install 'stub-docs
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   ;; The daemon doesn't like empty output paths.
+                   (mkdir (assoc-ref outputs "doc"))))
+              '(add-after 'install 'move-docs
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (doc (assoc-ref outputs "doc")))
+                     (mkdir-p (string-append doc "/share"))
+                     (rename-file
+                      (string-append out "/share/gtk-doc")
+                      (string-append doc "/share/gtk-doc"))
+                     #t)))))))
     (native-inputs
      `(("docbook-xml" ,docbook-xml-4.3)
        ("docbook-xsl" ,docbook-xsl)
-- 
2.33.0