build.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. set -e
  2. mkdir -p fonts
  3. #Make unhinted
  4. mkdir -p fonts/unhinted
  5. UNHINTED_VF_PATH=fonts/unhinted/Roboto[ital,wdth,wght].ttf
  6. fontmake -m sources/Roboto.designspace -o variable --output-path $UNHINTED_VF_PATH
  7. python Scripts/drop_mvar.py $UNHINTED_VF_PATH
  8. statmake --designspace sources/Roboto.designspace --stylespace sources/Roboto.stylespace $UNHINTED_VF_PATH
  9. python Scripts/fix_gasp.py $UNHINTED_VF_PATH "65535=15"
  10. python Scripts/instantiate_statics.py $UNHINTED_VF_PATH fonts/unhinted/static
  11. # Make Android
  12. mkdir -p fonts/android
  13. ANDROID_VF_PATH=fonts/android/Roboto[ital,wdth,wght].ttf
  14. cp $UNHINTED_VF_PATH $ANDROID_VF_PATH
  15. python Scripts/touchup_for_android.py $ANDROID_VF_PATH
  16. python Scripts/instantiate_statics.py $ANDROID_VF_PATH fonts/android/static
  17. for font in $(ls fonts/android/static/*.ttf)
  18. do
  19. python Scripts/touchup_for_android.py $font;
  20. done
  21. # Make hinted
  22. mkdir -p fonts/hinted
  23. HINTED_VF_PATH=fonts/hinted/Roboto[ital,wdth,wght].ttf
  24. # Transfer Hints and compile them
  25. cp $UNHINTED_VF_PATH $HINTED_VF_PATH
  26. python -m vttLib mergefile sources/vtt-hinting.ttx $HINTED_VF_PATH
  27. python -m vttLib compile $HINTED_VF_PATH $HINTED_VF_PATH.fix --ship
  28. mv $HINTED_VF_PATH.fix $HINTED_VF_PATH
  29. python Scripts/touchup_for_web.py $HINTED_VF_PATH
  30. python Scripts/fix_gasp.py $HINTED_VF_PATH "8=8,65535=15"
  31. python Scripts/instantiate_statics.py $HINTED_VF_PATH fonts/hinted/static
  32. # Make web
  33. mkdir -p fonts/web
  34. WEB_VF_PATH=fonts/web/Roboto[ital,wdth,wght].ttf
  35. python Scripts/subset_for_web.py $HINTED_VF_PATH $WEB_VF_PATH
  36. python Scripts/touchup_for_web.py $WEB_VF_PATH
  37. # Split fonts can be removed once all browsers support slnt and ital axes properly
  38. mkdir -p fonts/web/split
  39. python Scripts/split_slnt_vf.py $WEB_VF_PATH fonts/web/split
  40. python Scripts/instantiate_statics.py $WEB_VF_PATH fonts/web/static
  41. for font in $(ls fonts/web/static/*.ttf)
  42. do
  43. python Scripts/touchup_for_web.py $font;
  44. done
  45. # Make ChromeOS
  46. mkdir -p fonts/chromeos
  47. CHROMEOS_VF_PATH=fonts/chromeos/Roboto[ital,wdth,wght].ttf
  48. cp $HINTED_VF_PATH $CHROMEOS_VF_PATH
  49. pyftsubset --unicodes="*" --name-IDs='*' --name-legacy --name-languages="*" \
  50. --recalc-bounds --recalc-timestamp --canonical-order \
  51. --layout-features="*" --notdef-outline $CHROMEOS_VF_PATH \
  52. --output-file=$CHROMEOS_VF_PATH.fix
  53. mv $CHROMEOS_VF_PATH.fix $CHROMEOS_VF_PATH
  54. python Scripts/instantiate_statics.py $CHROMEOS_VF_PATH fonts/chromeos/static