]> git.donarmstrong.com Git - lilypond.git/blob - scripts/build/gen-emmentaler-scripts.py
935baafca426afac9d09d56c12e20ad050611dd7
[lilypond.git] / scripts / build / gen-emmentaler-scripts.py
1 #!@PYTHON@
2 import sys
3 import getopt
4 import re
5 import os
6
7 (options, files) = \
8  getopt.getopt (sys.argv[1:],
9                 '',
10                 ['dir=', 'design-size='])
11
12 design_size = 0
13 outdir = ''
14 for opt in options:
15     o = opt[0]
16     a = opt[1]
17     if o == '--dir':
18         outdir = a
19     elif o == '--design-size':
20         design_size = int(a)
21     else:
22         print o
23         raise getopt.error
24
25         
26 name = 'Emmentaler'
27 filename = name.lower ()
28 script = '''#!@FONTFORGE@
29
30 New();
31
32 # Separate Feta versioning?
33 #         *  using 20 as Weight works for gnome-font-select widget: gfs
34
35 notice = "";
36 notice += "This font is distributed under the GNU General Public License. ";
37 notice += "As a special exception, if you create a document which uses ";
38 notice += "this font, and embed this font or unaltered portions of this ";
39 notice += "font into the document, this font does not by itself cause the ";
40 notice += "resulting document to be covered by the GNU General Public License.";;
41
42 SetFontNames("%(name)s-%(design_size)d", "%(name)s-%(design_size)d", "%(name)s-%(design_size)d", "", notice, "@TOPLEVEL_VERSION@");
43
44 MergeFonts("feta%(design_size)d.pfb");
45 MergeFonts("feta-noteheads%(design_size)d.pfb");
46 MergeFonts("feta-flags%(design_size)d.pfb");
47 MergeFonts("parmesan%(design_size)d.pfb");
48 MergeFonts("parmesan-noteheads%(design_size)d.pfb");
49
50 # load nummer/din after setting PUA.
51 i = 0;
52 while (i < CharCnt())
53  Select(i);
54 # crashes fontforge, use PUA for now -- jcn
55 # SetUnicodeValue(i + 0xF0000, 0);
56 /*
57 PRIVATE AREA
58    In the BMP, the range 0xe000 to 0xf8ff will never be  assigned  to  any
59    characters  by  the standard and is reserved for private usage. For the
60    Linux community, this private area has been subdivided further into the
61    range  0xe000  to 0xefff which can be used individually by any end-user
62    and the Linux zone in the range 0xf000 to 0xf8ff where  extensions  are
63    coordinated  among  all  Linux  users.  The  registry of the characters
64    assigned to the Linux zone is currently maintained by  H.  Peter  Anvin
65    <Peter.Anvin@linux.org>.
66 */
67  SetUnicodeValue(i + 0xE000, 0);
68  ++i;
69 endloop
70
71
72 MergeFonts("feta-alphabet%(design_size)d.pfb");
73 MergeKern("feta-alphabet%(design_size)d.tfm");
74
75 LoadTableFromFile("LILF", "%(filename)s-%(design_size)d.subfonts");
76 LoadTableFromFile("LILC", "feta%(design_size)d.otf-table");
77 LoadTableFromFile("LILY", "feta%(design_size)d.otf-gtable");
78
79 Generate("%(filename)s-%(design_size)d.otf");
80 Generate("%(filename)s-%(design_size)d.svg");
81 Generate("%(filename)s-%(design_size)d.woff");
82 ''' % vars()
83
84 basename = '%s-%d' % (filename, design_size)
85 path = os.path.join (outdir, basename + '.genpe')
86 open (path, 'w').write (script)
87
88 subfonts = ['feta%(design_size)d',
89             'feta-noteheads%(design_size)d',
90             'feta-flags%(design_size)d',
91             'parmesan%(design_size)d',
92             'parmesan-noteheads%(design_size)d',
93             'feta-alphabet%(design_size)d']
94
95 ns = []
96 for s in subfonts:
97     ns.append ('%s' % (s % vars()))
98
99 subfonts_str = ' '.join (ns)
100
101 open (os.path.join (outdir, '%(filename)s-%(design_size)d.subfonts' % vars()), 'w').write (subfonts_str)
102
103 path = os.path.join (outdir, '%s-%d.dep' % (filename, design_size))
104
105 deps = r'''%(filename)s-%(design_size)d.otf: $(outdir)/feta%(design_size)d.pfb \
106  $(outdir)/parmesan%(design_size)d.pfb  \
107  $(outdir)/feta-alphabet%(design_size)d.pfb feta%(design_size)d.otf-table \
108  feta%(design_size)d.otf-gtable
109 ''' % vars()
110
111 open (path, 'w').write (deps)
112
113 open (os.path.join (outdir, basename + '.fontname'), 'w').write ("%s-%d" % (name, design_size))