#!/usr/bin/env python import os import sys import argparse import logging import subprocess from robofab.objects.objectsRF import RPoint from robofab.world import OpenFont from fontbuild.Build import FontProject from fontbuild.mix import Master from fontbuild.mix import Mix FAMILYNAME = "Interface" BASEDIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) def extractSpecializedGlyphs(masterFont): glyphSpecializations = {} specializationSuffix = '.specz.' specializedGlyphNames = [] font = masterFont.font for g in font: p = g.name.find(specializationSuffix) if p == -1: continue name = g.name[:p] category = g.name[p + len(specializationSuffix):] g2 = g.copy() g2.name = name if name in font: # copy unicodes masterGlyph = font[name] g2.unicodes = masterGlyph.unicodes if not category in glyphSpecializations: glyphSpecializations[category] = { name: g2 } else: glyphSpecializations[category][name] = g2 specializedGlyphNames.append(g.name) ffont = masterFont.ffont for name in specializedGlyphNames: del ffont.glyphs[name] font.removeGlyph(name) return glyphSpecializations def readVersionControlTag(dir): try: return subprocess.check_output( ['git', '-C', dir, 'rev-parse', '--short', 'HEAD'], shell=False).strip() except: return '' # silence warnings from fontTools.misc.fixedTools that is harmless and caused by # the ufo2ft module. logging.getLogger('fontTools.misc.fixedTools').setLevel(logging.ERROR) default_out_dir = os.path.join(BASEDIR,'build','tmp') srcDir = os.path.join(BASEDIR, 'src') argparser = argparse.ArgumentParser(description='Build TTF and OTF font files from UFO sources.') argparser.add_argument('styles', metavar='