mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-11 05:39:41 -05:00
gnu: Add r-freetypeharfbuzz.
* gnu/packages/cran.scm (r-freetypeharfbuzz): New variable.
This commit is contained in:
parent
6b99bf8a6f
commit
0643488ed8
1 changed files with 77 additions and 0 deletions
|
@ -55,6 +55,7 @@ (define-module (gnu packages cran)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system r)
|
#:use-module (guix build-system r)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages algebra)
|
#:use-module (gnu packages algebra)
|
||||||
|
@ -25960,3 +25961,79 @@ (define-public r-fontquiver
|
||||||
"This package provides a set of fonts. This is useful when you want to
|
"This package provides a set of fonts. This is useful when you want to
|
||||||
avoid system fonts to make sure your outputs are reproducible.")
|
avoid system fonts to make sure your outputs are reproducible.")
|
||||||
(license license:gpl3)))
|
(license license:gpl3)))
|
||||||
|
|
||||||
|
(define-public r-freetypeharfbuzz
|
||||||
|
(package
|
||||||
|
(name "r-freetypeharfbuzz")
|
||||||
|
(version "0.2.6")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (cran-uri "freetypeharfbuzz" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0r3icgnq3jk4fm6z92cmhzdmflbk5df8zsmjg0dzpc4y48xafnk7"))))
|
||||||
|
(properties
|
||||||
|
`((upstream-name . "freetypeharfbuzz")))
|
||||||
|
(build-system r-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'prepare-static-libraries
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(mkdir-p "src/target/include")
|
||||||
|
(let ((freetype (assoc-ref inputs "static-freetype"))
|
||||||
|
(harfbuzz (assoc-ref inputs "static-harfbuzz")))
|
||||||
|
(substitute* "src/Makevars.in"
|
||||||
|
(("include @MK_FILE@") "") ; do not build static libs
|
||||||
|
(("^HB_STATIC_LIB =.*")
|
||||||
|
(string-append "HB_STATIC_LIB = " harfbuzz "/lib/libharfbuzz.a\n"))
|
||||||
|
(("^FT_STATIC_LIB =.*")
|
||||||
|
(string-append "FT_STATIC_LIB = " freetype "/lib/libfreetype.a\n")))
|
||||||
|
(copy-recursively (string-append freetype "/include")
|
||||||
|
"src/target/include")
|
||||||
|
(copy-recursively (string-append harfbuzz "/include")
|
||||||
|
"src/target/include")))))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("r-fontquiver" ,r-fontquiver)))
|
||||||
|
;; This may defeat the purpose of this package as our versions of freetype
|
||||||
|
;; and harfbuzz obviously differ from the tarballs offered by this
|
||||||
|
;; project. On the other hand, Guix arguably does a better job at
|
||||||
|
;; "ensur[ing] deterministic computation".
|
||||||
|
(native-inputs
|
||||||
|
`(("static-freetype"
|
||||||
|
,(package
|
||||||
|
(inherit (static-package freetype))
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags
|
||||||
|
(list "--enable-static=yes"
|
||||||
|
"--with-pic=yes"
|
||||||
|
"--without-zlib"
|
||||||
|
"--without-bzip2"
|
||||||
|
"--without-png"
|
||||||
|
"--without-harfbuzz")))))
|
||||||
|
("static-harfbuzz"
|
||||||
|
,(package
|
||||||
|
(inherit (static-package harfbuzz))
|
||||||
|
(arguments
|
||||||
|
`(#:tests? #false ; fail because shared library is disabled
|
||||||
|
#:configure-flags
|
||||||
|
(list "--enable-static=yes"
|
||||||
|
"--enable-shared=no"
|
||||||
|
"--with-pic=yes"
|
||||||
|
"--with-freetype=yes"
|
||||||
|
"--without-icu"
|
||||||
|
"--without-cairo"
|
||||||
|
"--without-fontconfig"
|
||||||
|
"--without-glib")))))))
|
||||||
|
(inputs
|
||||||
|
`(("zlib" ,zlib)))
|
||||||
|
(home-page "https://cran.r-project.org/package=freetypeharfbuzz")
|
||||||
|
(synopsis "Deterministic computation of text box metrics")
|
||||||
|
(description
|
||||||
|
"Unlike other tools that dynamically link to the Cairo stack,
|
||||||
|
freetypeharfbuzz is statically linked to specific versions of the FreeType and
|
||||||
|
harfbuzz libraries. This ensures deterministic computation of text box
|
||||||
|
extents for situations where reproducible results are crucial (for instance
|
||||||
|
unit tests of graphics).")
|
||||||
|
(license license:gpl3)))
|
||||||
|
|
Loading…
Reference in a new issue