* remove flag 0x80 for Apple's table, conflicting with 0x800 for old style
[dejavu.git] / dejavu-fonts / generate.pe
blobe0e9d88deac9705184be7113dfaab46fea01cc07
1 #!/usr/bin/env fontforge
2 # $Id$
4 # script file for FontForge for TTF generation
5 # usage:
6 #   mkdir generated
7 #   chmod +x generate.pe
8 #   ./generate.pe *.sfd
10 # font generation flags:
11 #      8 => do not include TT instructions (for experimental typefaces)
12 #   0x20 => generate a 'PfEd' table and store glyph comments
13 #   0x40 => generate a 'PfEd' table and store glyph colors
14 #   0x800 => generate old fashioned kern tables.
15 #           - this one is important because it generates correct kerning tables
16 def_gen_flags = 0x20 + 0x40 + 0x800
17 exp_gen_flags = def_gen_flags + 8
19 if ($version < "20061014")
20   Error("Your version of FontForge is too old - 20061014 or newer is required");
21 endif
22 # FoundryName is not used in TTF generation
23 SetPref("FoundryName", "DejaVu")
24 # first 4 characters of TTFFoundry are used for achVendId
25 SetPref("TTFFoundry", "DejaVu")
26 i = 1
27 while ( i < $argc )
28   Open($argv[i], 1)
29   gen_flags = def_gen_flags
30   # Serif Oblique and Serif Bold Oblique are experimental
31   if ((Strcasestr ($fontname, "Serif") > -1) && (Strcasestr ($fontname, "Oblique") > -1))
32     gen_flags = exp_gen_flags
33   endif
34   if (Strcasestr ($fontname, "Condensed") > -1)
35     gen_flags = exp_gen_flags
36   endif
37   if (Strcasestr ($fontname, "ExtraLight") > -1)
38     gen_flags = exp_gen_flags
39   endif
40   # no non-combining ligatures in Mono (we remove all because there are no valid combining ligatures right now)
41   if (Strcasestr ($fontname, "Mono") > -1)
42     SelectAll()
43     RemoveATT("Ligature", "*", "*")
44     SelectNone()
45   endif
46   Generate("generated/" + $fontname + ".ttf", "", gen_flags)
47   i++
48 endloop