#!/usr/bin/env python from __future__ import print_function import os import sys import argparse import logging import subprocess from shutil import copyfile 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 = "Inter UI" 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 '' def main(): # 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='