Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / fontconfig / make-fonts-cache.nix
blob47884b9c3b928b7cf9995bd6057ed210f632653c
1 { runCommand, lib, fontconfig, fontDirectories }:
3 runCommand "fc-cache"
4   {
5     nativeBuildInputs = [ fontconfig.bin ];
6     preferLocalBuild = true;
7     allowSubstitutes = false;
8     passAsFile = [ "fontDirs" ];
9     fontDirs = ''
10       <!-- Font directories -->
11       ${lib.concatStringsSep "\n" (map (font: "<dir>${font}</dir>") fontDirectories)}
12     '';
13   }
14   ''
15     export FONTCONFIG_FILE=$(pwd)/fonts.conf
17     cat > fonts.conf << EOF
18     <?xml version='1.0'?>
19     <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
20     <fontconfig>
21       <include>${fontconfig.out}/etc/fonts/fonts.conf</include>
22       <cachedir>$out</cachedir>
23     EOF
24     cat "$fontDirsPath" >> fonts.conf
25     echo "</fontconfig>" >> fonts.conf
27     mkdir -p $out
28     fc-cache -sv
30     # This is not a cache dir in the normal sense -- it won't be automatically
31     # recreated.
32     rm -f "$out/CACHEDIR.TAG"
33   ''