Skip to content

Commit

Permalink
New builder (#726)
Browse files Browse the repository at this point in the history
* WIP new builder

* These modules are now an integral part of the builder

* Add subset adder (needs merge of #730)

* Various noto fixes

* Actually use tempdir for temporaries

* Change case of recipe_provider to match others

* Fix instance directory

* Fix paths in noto builder

* Include the googlefonts/ targets for noto

* Fix building STAT tables

* Add some validation for TTF builds

* Comments

* Compatibility with older Pythons

* Build UI VFs

* Use temporary directory for stamp files

* Move main function

* Fix command-line args

* Build web fonts

* Correct ninja syntax on Windows

* Continue losing on Windows

* Allow passing a dict config

* Allow ints as well as hexints in subset YAML (for machine-generated configs)

* Use JSON format UFOs for intermediaries, fixes #731

* Properly save JSON-based subset UFOs

* Fix fontmake arguments

* Everyone gets a STAT table!

* Add --include-source-fixes when fixing googlefonts outputs

* Call ninja and report exit status

* Don't pass argv to ninja

* Don’t do STAT inplace

* Allow other args to subspacer

* cmap remapper

* I believe this makes buildSTAT work everywhere

* Deepcopy steps so the YAML doesn't go all referency with --generate

* Allow disabling buildWebfont!

* Allow source->operation->source

* Keep notdef outline, saves a FAIL

* Add a --deep option to remap inside GSUB

* Pass --deep option to remap

* [builder2] Pass --glyph-data to fontmake when converting glyphs to ufo (#743)

This seems to have been dropped during the refactoring.

* Support glyphspackage

* Quieten fontmake jobs

* Use a jobrunner to quieten successful jobs and highlight failing ones

* Add a build-vtt utility and operation

* Port more options from the old builder

* glyphData is an array

* glyphData is an array, and only for Glyphs sources

* Handier error message format

* Let's not autohint OTFs

* Don't run buildSTAT on woff2 as well

* Documentation

* Additional docs about recipe overrides

* This seems to be needed?

* Better handle recipe provider inheritance

* Black

* Use strictYAML, first step in getting proper validation

* Consistently use "args", not "fontmake_args", "fixargs" etc.

* Use schema to validate

* Fix up notobuilder after strictYAMLification

* This is yucky.

* black

* Autohint OTF

* Move base schema to .schema, rename GF schema

* Allow postprocess-only overrides

* StrictYAML has made things confusing, use typing to help

* Reformat with black

* More strictyaml fixes

* Make --generate work again with strictyaml

* Everything that comes from .config is strictYAML now and needs .data

* Revalidate STAT to schema

* Make STAT values optional

* More StrictYAML pollution

* More StrictYAML pollution

* More StrictYAML pollution, needed for UIVFs

* Cope with the same step being in a recipe twice

* Fail early on silly graphs

* gf recipe: fix revalidate stat tables

* gf recipe: fix flag typo

* gf recipe: toggle compatibility check for ds sources as well

* add missing import

* autohintOTF: use --no-sonzes-stems if dflt fails

* fix string concat

* fix typo

* Allow extra fontmake args in config file

* Fix more StrictYAML annoyance

* Add remap layout operation

* Allow the use of $in and $out in exec args

* Allow passing args to rename

* Default autohintOTF to false

* Derive output directory defaults from outputDir, fixes #846

---------

Co-authored-by: خالد حسني (Khaled Hosny) <[email protected]>
Co-authored-by: Marc Foley <[email protected]>
  • Loading branch information
3 people authored Mar 12, 2024
1 parent 6997cba commit 8857696
Show file tree
Hide file tree
Showing 40 changed files with 2,147 additions and 1,218 deletions.
1,018 changes: 327 additions & 691 deletions Lib/gftools/builder/__init__.py

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions Lib/gftools/builder/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from gftools.builder import main
import yaml
import subprocess


if __name__ == "__main__":
main()
Loading

0 comments on commit 8857696

Please sign in to comment.