tooling: upgrade libs, rename VF fext otf -> ttf, add STAT table patch

- upgrades 3rd party libraries used by the toolchain
- upgrades fontbuild code to adjust changes to library APIs
- renames VF font filename extensions to .ttf
- adds better STAT table patch to improve metadata on Windows
This commit is contained in:
Rasmus Andersson 2020-08-18 17:57:25 -07:00
parent cb3d2853b9
commit d76268cf8d
10 changed files with 114 additions and 164 deletions

34
misc/fontbuildlib/stat.py Normal file
View file

@ -0,0 +1,34 @@
# from fontTools.designspaceLib import DesignSpaceDocument
# from fontTools.ttLib.tables import otTables as ot
# from fontTools.ttLib import ttFont
from fontTools.otlLib.builder import buildStatTable
def rebuildStatTable(font, designspace):
if not 'fvar' in font:
raise Exception('missing fvar table in font')
axes = [dict(tag=a.axisTag, name=a.axisNameID) for a in font['fvar'].axes]
# axes = []
# for a in statTable.DesignAxisRecord.Axis:
# axes.append({ 'tag': a.AxisTag, 'name': a.AxisNameID, 'ordering': a.AxisOrdering })
axisNameToTag = dict()
for axis in designspace.axes:
axisNameToTag[axis.name] = axis.tag
locations = []
for instance in designspace.instances:
location = dict()
for axisName, value in instance.location.items():
tag = axisNameToTag[axisName]
location[tag] = value
locations.append({ 'name': instance.styleName, 'location': location })
buildStatTable(font, axes, locations)
# font = ttFont.TTFont("build/fonts/var/Inter.var.ttf")
# designspace = DesignSpaceDocument.fromfile('build/ufo/inter.designspace')
# rebuildStatTable(font, designspace)
# print("write build/tmp/Inter.var-patched.ttf")
# font.save("build/tmp/Inter.var-patched.ttf")