summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rwxr-xr-xscripts/touchup_for_glass.py52
2 files changed, 56 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index af719f0..6e359d3 100644
--- a/Makefile
+++ b/Makefile
@@ -38,3 +38,7 @@ android:
python scripts/force_yminmax.py $$subsetted $$final; \
rm $$touched $$subsetted; \
done
+
+glass: out/android/Roboto-Thin.ttf
+ mkdir -p out/glass
+ python scripts/touchup_for_glass.py $< out/glass/Roboto-Thin.ttf
diff --git a/scripts/touchup_for_glass.py b/scripts/touchup_for_glass.py
new file mode 100755
index 0000000..1374e32
--- /dev/null
+++ b/scripts/touchup_for_glass.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python
+"""Post-build changes for Glass."""
+
+import os
+from os import path
+import sys
+
+from fontTools import ttLib
+from nototools import font_data
+
+
+def apply_glass_hacks(font):
+ """Apply glass-specific hacks."""
+ # Really ugly hack, expecting the proportional digit one to be at
+ # glyph01965.
+ font_data.add_to_cmap(font, {0xEE00: 'glyph01965'})
+
+ # Fix version number from buildnumber.txt
+ from datetime import date
+
+ build_number_txt = path.join(
+ path.dirname(__file__), os.pardir, 'res', 'buildnumber.txt')
+ build_number = open(build_number_txt).read().strip()
+
+ version_record = 'Version 2.0%s; %d; Glass' % (
+ build_number, date.today().year)
+
+ for record in font['name'].names:
+ if record.nameID == 5:
+ if record.platformID == 1 and record.platEncID == 0: # MacRoman
+ record.string = version_record
+ elif record.platformID == 3 and record.platEncID == 1:
+ # Windows UCS-2
+ record.string = version_record.encode('UTF-16BE')
+ else:
+ assert False
+
+
+def correct_font(source_font_name, target_font_name):
+ """Corrects metrics and other meta information."""
+ font = ttLib.TTFont(source_font_name)
+ apply_glass_hacks(font)
+ font.save(target_font_name)
+
+
+def main(argv):
+ """Correct the font specified in the command line."""
+ correct_font(argv[1], argv[2])
+
+
+if __name__ == "__main__":
+ main(sys.argv)