mirror of
https://github.com/rsms/inter.git
synced 2024-11-17 07:47:33 +01:00
adds --cufo flag to ufocompile for compiling UFO files instead of OTF and TTF files
This commit is contained in:
parent
50ca3807f7
commit
8c1a4c181e
2 changed files with 36 additions and 22 deletions
|
@ -72,6 +72,7 @@ class FontProject:
|
|||
self.buildOTF = False
|
||||
self.compatible = False
|
||||
self.generatedFonts = []
|
||||
self.justCompileUFO = False
|
||||
|
||||
def openResource(self, name):
|
||||
with open(os.path.join(
|
||||
|
@ -98,7 +99,8 @@ class FontProject:
|
|||
f = mix.generateFont(self.basefont, self.deleteList)
|
||||
else:
|
||||
f = mix.copy()
|
||||
deleteGlyphs(f, self.deleteList)
|
||||
if not self.justCompileUFO:
|
||||
deleteGlyphs(f, self.deleteList)
|
||||
|
||||
if italic == True:
|
||||
log(">> Italicizing")
|
||||
|
@ -137,12 +139,13 @@ class FontProject:
|
|||
if len(g.components) > 0:
|
||||
self.predecompose.add(g.name)
|
||||
|
||||
for gname in self.predecompose:
|
||||
if f.has_key(gname):
|
||||
decomposeGlyph(f, f[gname])
|
||||
if not self.justCompileUFO:
|
||||
for gname in self.predecompose:
|
||||
if f.has_key(gname):
|
||||
decomposeGlyph(f, f[gname])
|
||||
|
||||
log(">> Generating glyphs")
|
||||
generateGlyphs(f, self.diacriticList, self.adobeGlyphList)
|
||||
self.generateGlyphs(f, self.diacriticList, self.adobeGlyphList)
|
||||
# log(">> Reading features")
|
||||
# readFeatureFile(f, f.features.text)
|
||||
|
||||
|
@ -163,13 +166,14 @@ class FontProject:
|
|||
g.leftMargin = newLeftMargin
|
||||
g.rightMargin = newRightMargin
|
||||
|
||||
log(">> Decomposing")
|
||||
# for g in f:
|
||||
# if len(g.components) > 0:
|
||||
# decomposeGlyph(f, g)
|
||||
for gname in self.decompose:
|
||||
if f.has_key(gname):
|
||||
decomposeGlyph(f, f[gname])
|
||||
if not self.justCompileUFO:
|
||||
log(">> Decomposing")
|
||||
# for g in f:
|
||||
# if len(g.components) > 0:
|
||||
# decomposeGlyph(f, g)
|
||||
for gname in self.decompose:
|
||||
if f.has_key(gname):
|
||||
decomposeGlyph(f, f[gname])
|
||||
|
||||
copyrightHolderName = ''
|
||||
if self.config.has_option('main', 'copyrightHolderName'):
|
||||
|
@ -193,7 +197,8 @@ class FontProject:
|
|||
'italicAngle': float(getcfg('italicAngle', '-12')),
|
||||
}, panose)
|
||||
|
||||
if not self.compatible:
|
||||
if not self.compatible and not self.justCompileUFO:
|
||||
# Remove overlaps etc
|
||||
cleanCurves(f)
|
||||
# deleteGlyphs(f, self.deleteList)
|
||||
|
||||
|
@ -202,6 +207,10 @@ class FontProject:
|
|||
f.save(ufoName)
|
||||
self.generatedFonts.append(ufoName)
|
||||
|
||||
if self.justCompileUFO:
|
||||
print("wrote %s" % ufoName)
|
||||
return
|
||||
|
||||
# filter glyphorder -- only include glyphs that exists in font
|
||||
glyphOrder = []
|
||||
seenGlyphNames = set()
|
||||
|
@ -242,6 +251,12 @@ class FontProject:
|
|||
glyphOrder = [n for n in self.glyphOrder if n in font]
|
||||
saveOTF(font, ttfName, glyphOrder, truetype=True)
|
||||
|
||||
def generateGlyphs(self, f, glyphNames, glyphList={}):
|
||||
log(">> Generating diacritics")
|
||||
glyphnames = [gname for gname in glyphNames if not gname.startswith("#") and gname != ""]
|
||||
for glyphName in glyphNames:
|
||||
generateGlyph(f, glyphName, glyphList)
|
||||
|
||||
|
||||
# def transformGlyphMembers(g, m):
|
||||
# g.width = int(g.width * m.a)
|
||||
|
@ -290,14 +305,6 @@ def log(msg):
|
|||
print msg
|
||||
|
||||
|
||||
def generateGlyphs(f, glyphNames, glyphList={}):
|
||||
log(">> Generating diacritics")
|
||||
glyphnames = [gname for gname in glyphNames if not gname.startswith("#") and gname != ""]
|
||||
|
||||
for glyphName in glyphNames:
|
||||
generateGlyph(f, glyphName, glyphList)
|
||||
|
||||
|
||||
def deleteGlyphs(f, deleteList):
|
||||
for name in deleteList:
|
||||
if f.has_key(name):
|
||||
|
|
|
@ -81,6 +81,10 @@ def main():
|
|||
'--no-ttf', dest='no_ttf', action='store_const',
|
||||
const=True, default=False, help='Do not build TTF files')
|
||||
|
||||
argparser.add_argument(
|
||||
'--cufo', dest='cufo', action='store_const',
|
||||
const=True, default=False, help='Only compile composite UFO')
|
||||
|
||||
argparser.add_argument(
|
||||
'--out', dest='out', metavar='<dir>', type=str, default=default_out_dir,
|
||||
help='Write output to <dir> instead of the default (%r)' % default_out_dir)
|
||||
|
@ -137,6 +141,9 @@ def main():
|
|||
rg.font, BASEDIR, os.path.join(srcDir,'fontbuild.cfg'), buildTag=buildTag)
|
||||
proj.builddir = args.out
|
||||
|
||||
if args.cufo:
|
||||
proj.justCompileUFO = True
|
||||
|
||||
# panose for entire family
|
||||
panose = {
|
||||
'bFamilyType': 2, # Latin Text
|
||||
|
@ -225,7 +232,7 @@ def main():
|
|||
panose=mkpanose(9))
|
||||
|
||||
# generate TTFs
|
||||
if args.no_ttf == False:
|
||||
if args.no_ttf == False and args.cufo == False:
|
||||
proj.generateTTFs()
|
||||
|
||||
if not ALL:
|
||||
|
|
Loading…
Reference in a new issue