gnu: libavif: Add tools output.

* gnu/packages/image.scm (libavif)[arguments]: Build avifenc & avifdec.
[outputs]: Add 'tools' output.
[inputs]: Add zlib, libpng, libjpeg-turbo.

Signed-off-by: Leo Famulari <leo@famulari.name>
This commit is contained in:
Bruno Victal 2022-12-17 00:51:29 +00:00 committed by Leo Famulari
parent faeeb302c2
commit 216281b1eb
No known key found for this signature in database
GPG key ID: 2646FA30BACA7F08

View file

@ -34,6 +34,7 @@
;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 ( <paren@disroot.org> ;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Bruno Victal <mirai@makinata.eu>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -2176,7 +2177,7 @@ (define-public libavif
(%current-system))) (%current-system)))
'("-DAVIF_CODEC_RAV1E=ON") '("-DAVIF_CODEC_RAV1E=ON")
'()) '())
"-DAVIF_BUILD_TESTS=ON") "-DAVIF_BUILD_TESTS=ON" "-DAVIF_BUILD_APPS=ON")
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(replace 'check (replace 'check
@ -2185,7 +2186,21 @@ (define-public libavif
(add-after 'install 'install-readme (add-after 'install 'install-readme
(lambda _ (lambda _
(let ((doc (string-append #$output "/share/doc/libavif-" #$version))) (let ((doc (string-append #$output "/share/doc/libavif-" #$version)))
(install-file "../source/README.md" doc))))))) (install-file "../source/README.md" doc))))
(add-after 'install 'split
(lambda _
(let* ((avifenc (string-append #$output "/bin/avifenc"))
(avifenc* (string-append #$output:tools "/bin/avifenc"))
(avifdec (string-append #$output "/bin/avifdec"))
(avifdec* (string-append #$output:tools "/bin/avifdec")))
(mkdir-p (string-append #$output:tools "/bin"))
(for-each (lambda (old new)
(copy-file old new)
(delete-file old)
(chmod new #o555))
(list avifenc avifdec)
(list avifenc* avifdec*))))))))
(inputs (inputs
(append (append
;; XXX: rav1e depends on rust, which currently only works on x86_64. ;; XXX: rav1e depends on rust, which currently only works on x86_64.
@ -2193,7 +2208,9 @@ (define-public libavif
(if (string-prefix? "x86_64" (or (%current-target-system) (if (string-prefix? "x86_64" (or (%current-target-system)
(%current-system))) (%current-system)))
(list rav1e) '()) (list rav1e) '())
(list dav1d libaom))) (list dav1d libaom zlib libpng libjpeg-turbo)))
(outputs (list "out"
"tools")) ; avifenc & avifdec
(synopsis "Encode and decode AVIF files") (synopsis "Encode and decode AVIF files")
(description "Libavif is a C implementation of @acronym{AVIF, the AV1 Image (description "Libavif is a C implementation of @acronym{AVIF, the AV1 Image
File Format}. It can encode and decode all YUV formats and bit depths supported File Format}. It can encode and decode all YUV formats and bit depths supported