The font manifest generator creates a .font_manifest.json file for use by the font server.
To see usage instructions, run
./out/default/host_x64/font_manifest_generator --help
*.font_catalog.jsonContains a human-written listing of font families, assets, and typefaces. See schema.
One .font_catalog.json file exists for each CIPD font repo.
These files are expected to reside in the Fuchsia source tree.
*.font_pkgs.jsonContains a listing of font asset names (e.g. "Roboto-Bold.ttf", safe package name suffixes (e.g. "roboto-bold-ttf"), and the relative path of the asset within the font directory.
One .font_pkgs.json file exists for each CIPD font repo. It is generated by a recipe and checked out as a prebuilt, along with font files.
*.all_fonts.json and *.local_fonts.jsonContains a listing of all font asset names and those that are local. all_fonts must be a superset of local_fonts. all_fonts are made available as ephemeral packages, while local_fonts are additionally bundled into the font server's /config/data directory in the OTA image.
These file determines which font assets from the catalogs actually end up in the generated manifest.
These files are generated by the GN font_collection template. There should be one pair per product target.
*.fontcfg.jsonContains a human-written set of product-specific font settings. See schema.
Currently, the main purpose of this file is to define a specific fallback chain, i.e. a preferred sequence of typefaces to use when an exact match for the client's typeface request is not available.
The fallback chain is defined manually. Some guidelines to follow:
sans-serif, serif, and monospace font families.Tip
To check which typefaces in a
font_collectionare not yet included in the fallback chain, run the manifest generator with-v(or--verbose). You can do this by temporarily changing the arguments in font_manifest.gni.
One .fontcfg.json (or .fontcfg.json5) file should be checked in for every GN font_collection() invocation.
This is usually a directory in //prebuilt/third_party, and it is where the CIPD checkout places all of the font asset files and the *.font_pkgs.json files.
The manifest generator must read the font files to collect the set of code points for each typeface.
fx set arguments include --with //bundles:tests.fx buildfx run-host-tests font_manifest_generator_bin_test \ font_manifest_generator_integration_tests