~ruther/guix-local

d22d06f9d2c324c5c9bfc4cf14139eccd1b30903 — 宋文武 2 years ago 503919f
build-system: font: Handle multiple outputs in the install phase.

* guix/build/font-build-system.scm (install): Prefer install files into their
specified outputs (ttf, otf, woff, otb, bdf, pcf, psf).

Change-Id: I2ecd126fe31ce4fc65c59106938e37523b0cc3d2
1 files changed, 27 insertions(+), 5 deletions(-)

M guix/build/font-build-system.scm
M guix/build/font-build-system.scm => guix/build/font-build-system.scm +27 -5
@@ 1,6 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2024 宋文武 <iyzsong@envs.net>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 49,13 50,34 @@ archive, or a font file."
  "Install the package contents."
  (let* ((out (assoc-ref outputs "out"))
         (source (getcwd))
         (fonts (string-append out "/share/fonts")))
    (for-each (cut install-file <> (string-append fonts "/truetype"))
         (truetype-dir (string-append (or (assoc-ref outputs "ttf") out)
                                      "/share/fonts/truetype"))
         (opentype-dir (string-append (or (assoc-ref outputs "otf") out)
                                      "/share/fonts/opentype"))
         (web-dir (string-append (or (assoc-ref outputs "woff") out)
                                 "/share/fonts/web"))
         (otb-dir (string-append (or (assoc-ref outputs "otb") out)
                                 "/share/fonts/misc"))
         (bdf-dir (string-append (or (assoc-ref outputs "bdf") out)
                                 "/share/fonts/misc"))
         (pcf-dir (string-append (or (assoc-ref outputs "pcf") out)
                                 "/share/fonts/misc"))
         (psf-dir (string-append (or (assoc-ref outputs "psf") out)
                                 "/share/consolefonts")))
    (for-each (cut install-file <> truetype-dir)
              (find-files source "\\.(ttf|ttc)$"))
    (for-each (cut install-file <> (string-append fonts "/opentype"))
    (for-each (cut install-file <> opentype-dir)
              (find-files source "\\.(otf|otc)$"))
    (for-each (cut install-file <> (string-append fonts "/web"))
              (find-files source "\\.(woff|woff2)$"))))
    (for-each (cut install-file <> web-dir)
              (find-files source "\\.(woff|woff2)$"))
    (for-each (cut install-file <> otb-dir)
              (find-files source "\\.otb$"))
    (for-each (cut install-file <> bdf-dir)
              (find-files source "\\.bdf$"))
    (for-each (cut install-file <> pcf-dir)
              (find-files source "\\.pcf$"))
    (for-each (cut install-file <> psf-dir)
              (find-files source "\\.psfu$"))))

(define %license-file-regexp
  ;; Regexp matching license files commonly found in font packages.