diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix new file mode 100644 index 000000000000..47884b9c3b92 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix @@ -0,0 +1,33 @@ +{ runCommand, lib, fontconfig, fontDirectories }: + +runCommand "fc-cache" + { + nativeBuildInputs = [ fontconfig.bin ]; + preferLocalBuild = true; + allowSubstitutes = false; + 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 'urn:fontconfig:fonts.dtd'> + <fontconfig> + <include>${fontconfig.out}/etc/fonts/fonts.conf</include> + <cachedir>$out</cachedir> + EOF + cat "$fontDirsPath" >> fonts.conf + echo "</fontconfig>" >> fonts.conf + + mkdir -p $out + fc-cache -sv + + # This is not a cache dir in the normal sense -- it won't be automatically + # recreated. + rm -f "$out/CACHEDIR.TAG" + '' |