diff options
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/libraries/fontconfig/make-fonts-cache.nix | 27 | ||||
-rw-r--r-- | pkgs/development/libraries/fontconfig/make-fonts-conf.xsl | 10 |
2 files changed, 32 insertions, 5 deletions
diff --git a/pkgs/development/libraries/fontconfig/make-fonts-cache.nix b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix new file mode 100644 index 00000000000..1321948c3c8 --- /dev/null +++ b/pkgs/development/libraries/fontconfig/make-fonts-cache.nix @@ -0,0 +1,27 @@ +{ runCommand, lib, writeText, fontconfig, fontbhttf, fontDirectories }: + +runCommand "fc-cache" + rec { + buildInputs = [ fontconfig ]; + passAsFile = [ "fontDirs" ]; + fontDirs = '' + <!-- Font directories --> + ${lib.concatStringsSep "\n" (map (font: "<dir>${font}</dir>") fontDirectories)} + ''; + } + '' + export FONTCONFIG_FILE=$(pwd)/fonts.conf + + cat > fonts.conf << EOF + <?xml version='1.0'?> + <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> + <fontconfig> + <include>${fontconfig}/etc/fonts/fonts.conf</include> + <cachedir>$out</cachedir> + EOF + cat "$fontDirsPath" >> fonts.conf + echo "</fontconfig>" >> fonts.conf + + mkdir -p $out + fc-cache -sv + '' diff --git a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl index 1b79834c894..b59fcd0187b 100644 --- a/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl +++ b/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl @@ -23,16 +23,16 @@ <fontconfig> <xsl:apply-templates select="child::node()[name() != 'dir' and name() != 'cachedir' and name() != 'include']" /> - <!-- fontconfig distribution conf.d --> - <include><xsl:value-of select="$fontconfig" />/etc/fonts/conf.d</include> - <!-- versioned system-wide config --> - <include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include> - <!-- the first cachedir will be used to store the cache --> <cachedir prefix="xdg">fontconfig</cachedir> <!-- /var/cache/fontconfig is useful for non-nixos systems --> <cachedir>/var/cache/fontconfig</cachedir> + <!-- fontconfig distribution conf.d --> + <include><xsl:value-of select="$fontconfig" />/etc/fonts/conf.d</include> + <!-- versioned system-wide config --> + <include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include> + <dir prefix="xdg">fonts</dir> <xsl:for-each select="str:tokenize($fontDirectories)"> <dir><xsl:value-of select="." /></dir> |