Now the fdt will contain metadatas only, while svg, fea and charmap will be created in one single step.
This commit is contained in:
parent
519b7d830a
commit
183f2f50e2
6 changed files with 71 additions and 66 deletions
19
generate.js
19
generate.js
|
@ -1,19 +0,0 @@
|
||||||
var fs = require('fs');
|
|
||||||
var path = require('path');
|
|
||||||
var buildGlyphs = require('./buildglyphs.js');
|
|
||||||
var parameters = require('./parameters');
|
|
||||||
var argv = require('yargs').argv;
|
|
||||||
var toml = require('toml');
|
|
||||||
|
|
||||||
var parametersData = toml.parse(fs.readFileSync(path.join(path.dirname(require.main.filename), 'parameters.toml'), 'utf-8'));
|
|
||||||
var emptyFont = toml.parse(fs.readFileSync(path.join(path.dirname(require.main.filename), 'emptyfont.toml'), 'utf-8'));
|
|
||||||
var para = parameters.build(parametersData, argv._);
|
|
||||||
var fontUniqueName = para.family + ' ' + para.style + ' ' + para.version + ' (' + para.codename + ')'
|
|
||||||
|
|
||||||
console.log(' Start build font ' + fontUniqueName);
|
|
||||||
var font = buildGlyphs.build.call(emptyFont, para);
|
|
||||||
// glyf list construction
|
|
||||||
font.glyfMap = null;
|
|
||||||
console.log(' ' + fontUniqueName + " Successfully built.");
|
|
||||||
|
|
||||||
if(argv.o) fs.writeFileSync(argv.o, JSON.stringify(font));
|
|
|
@ -1,7 +1,12 @@
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
var path = require('path');
|
||||||
|
|
||||||
var TTFWriter = require('node-sfnt').TTFWriter;
|
var TTFWriter = require('node-sfnt').TTFWriter;
|
||||||
var TTF = require('node-sfnt').TTF;
|
var TTF = require('node-sfnt').TTF;
|
||||||
var argv = require('yargs').argv;
|
var argv = require('yargs').argv;
|
||||||
|
var buildGlyphs = require('./buildglyphs.js');
|
||||||
|
var parameters = require('./parameters');
|
||||||
|
var toml = require('toml');
|
||||||
|
|
||||||
var Glyph = require('./support/glyph');
|
var Glyph = require('./support/glyph');
|
||||||
|
|
||||||
|
@ -17,9 +22,18 @@ function toBuffer(arrayBuffer) {
|
||||||
function pad(s, n){ while(s.length < n) s = '0' + s; return s; }
|
function pad(s, n){ while(s.length < n) s = '0' + s; return s; }
|
||||||
function mix(a, b, p){ return a + (b - a) * p }
|
function mix(a, b, p){ return a + (b - a) * p }
|
||||||
|
|
||||||
var options = { preserveOS2Version: true };
|
// Font building
|
||||||
var font = JSON.parse(fs.readFileSync(argv._[0], 'utf-8'));
|
var parametersData = toml.parse(fs.readFileSync(path.join(path.dirname(require.main.filename), 'parameters.toml'), 'utf-8'));
|
||||||
|
var emptyFont = toml.parse(fs.readFileSync(path.join(path.dirname(require.main.filename), 'emptyfont.toml'), 'utf-8'));
|
||||||
|
var para = parameters.build(parametersData, argv._);
|
||||||
|
var fontUniqueName = para.family + ' ' + para.style + ' ' + para.version + ' (' + para.codename + ')'
|
||||||
|
|
||||||
|
console.log(' Start build font ' + fontUniqueName);
|
||||||
|
var font = buildGlyphs.build.call(emptyFont, para);
|
||||||
|
console.log(' ' + fontUniqueName + " Successfully built.");
|
||||||
|
|
||||||
if(argv.charmap) {
|
if(argv.charmap) {
|
||||||
|
console.log(' Writing character map -> ' + argv.charmap);
|
||||||
fs.writeFileSync(argv.charmap, JSON.stringify(font.glyf.map(function(glyph){
|
fs.writeFileSync(argv.charmap, JSON.stringify(font.glyf.map(function(glyph){
|
||||||
return [
|
return [
|
||||||
glyph.name,
|
glyph.name,
|
||||||
|
@ -28,9 +42,10 @@ if(argv.charmap) {
|
||||||
]
|
]
|
||||||
})), 'utf8')
|
})), 'utf8')
|
||||||
};
|
};
|
||||||
if(argv.feature) {
|
|
||||||
var featurefile = '\n\n';
|
|
||||||
|
|
||||||
|
if(argv.feature) {
|
||||||
|
console.log(' Writing feature file -> ' + argv.feature);
|
||||||
|
var featurefile = '\n\n';
|
||||||
// markGlyphs
|
// markGlyphs
|
||||||
for(var key in font.features.markGlyphs){
|
for(var key in font.features.markGlyphs){
|
||||||
featurefile += '@MG_' + key + '= [' + font.features.markGlyphs[key].join(' ') + '];\n'
|
featurefile += '@MG_' + key + '= [' + font.features.markGlyphs[key].join(' ') + '];\n'
|
||||||
|
@ -59,7 +74,10 @@ if(argv.feature) {
|
||||||
fs.writeFileSync(argv.feature, featurefile, 'utf8');
|
fs.writeFileSync(argv.feature, featurefile, 'utf8');
|
||||||
};
|
};
|
||||||
|
|
||||||
/*if(argv.ttf) {
|
/*
|
||||||
|
// Currently unused
|
||||||
|
var options = { preserveOS2Version: true };
|
||||||
|
if(argv.ttf) {
|
||||||
var upm = (argv.upm - 0) || 1000;
|
var upm = (argv.upm - 0) || 1000;
|
||||||
var upmscale = upm / font.head.unitsPerEm;
|
var upmscale = upm / font.head.unitsPerEm;
|
||||||
var skew = (argv.uprightify ? 1 : 0) * Math.tan((font.post.italicAngle || 0) / 180 * Math.PI);
|
var skew = (argv.uprightify ? 1 : 0) * Math.tan((font.post.italicAngle || 0) / 180 * Math.PI);
|
||||||
|
@ -90,9 +108,11 @@ if(argv.feature) {
|
||||||
font['OS/2'].sCapHeight *= upmscale;
|
font['OS/2'].sCapHeight *= upmscale;
|
||||||
|
|
||||||
fs.writeFileSync(argv.ttf, toBuffer(new TTFWriter(options).write(font)));
|
fs.writeFileSync(argv.ttf, toBuffer(new TTFWriter(options).write(font)));
|
||||||
};*/
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
if(argv.svg) {
|
if(argv.svg) {
|
||||||
|
console.log(' Writing outline as SVG -> ' + argv.svg);
|
||||||
function cov(x){ return Math.round(x * 10000) / 10000 }
|
function cov(x){ return Math.round(x * 10000) / 10000 }
|
||||||
function toSVGPath(glyph){
|
function toSVGPath(glyph){
|
||||||
var buf = '';
|
var buf = '';
|
||||||
|
@ -171,3 +191,16 @@ if(argv.svg) {
|
||||||
svg += '</font></defs></svg>'
|
svg += '</font></defs></svg>'
|
||||||
fs.writeFileSync(argv.svg, svg, 'utf-8')
|
fs.writeFileSync(argv.svg, svg, 'utf-8')
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if(argv.meta){
|
||||||
|
console.log(' Writing metadata as JSON -> ' + argv.meta);
|
||||||
|
var glyf = font.glyf;
|
||||||
|
var glyfMap = font.glyfMap;
|
||||||
|
font.glyf = null;
|
||||||
|
font.glyfMap = null;
|
||||||
|
|
||||||
|
fs.writeFileSync(argv.meta, JSON.stringify(font));
|
||||||
|
|
||||||
|
font.glyf = glyf;
|
||||||
|
font.glyfMap = glyfMap;
|
||||||
|
}
|
16
makefile
16
makefile
|
@ -8,7 +8,6 @@ PARAM_SLAB = FAST='$(FAST)' SUFFIX='$(SUFFIX)-slab' VARIANTNAME='$(VARIANTNAME)'
|
||||||
### Sometimes make will freak out and report ACCESS VIOLATION for me... so i have to add some repeation
|
### Sometimes make will freak out and report ACCESS VIOLATION for me... so i have to add some repeation
|
||||||
LOOPS = 0 1 2
|
LOOPS = 0 1 2
|
||||||
|
|
||||||
fdts : fdts-default fdts-slab
|
|
||||||
svgs : svgs-default svgs-slab
|
svgs : svgs-default svgs-slab
|
||||||
fonts : fonts-default fonts-slab
|
fonts : fonts-default fonts-slab
|
||||||
test : test-default test-slab
|
test : test-default test-slab
|
||||||
|
@ -18,24 +17,17 @@ release : release-default release-slab
|
||||||
$(OBJDIR) :
|
$(OBJDIR) :
|
||||||
@- mkdir $@
|
@- mkdir $@
|
||||||
|
|
||||||
|
|
||||||
# fdts
|
|
||||||
fdts-default : $(SCRIPTS) | $(OBJDIR)
|
|
||||||
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_DEFAULT) LOOP=$(var);)
|
|
||||||
fdts-slab : $(SCRIPTS) | $(OBJDIR)
|
|
||||||
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_SLAB) LOOP=$(var);)
|
|
||||||
|
|
||||||
# svgs
|
# svgs
|
||||||
svgs-default : fdts-default
|
svgs-default : $(SCRIPTS) | $(OBJDIR)
|
||||||
@$(MAKE) -f onegroup.mk svgs $(PARAM_DEFAULT)
|
@$(MAKE) -f onegroup.mk svgs $(PARAM_DEFAULT)
|
||||||
svgs-slab : fdts-slab
|
svgs-slab : $(SCRIPTS) | $(OBJDIR)
|
||||||
@$(MAKE) -f onegroup.mk svgs $(PARAM_SLAB)
|
@$(MAKE) -f onegroup.mk svgs $(PARAM_SLAB)
|
||||||
|
|
||||||
|
|
||||||
# ttfs
|
# ttfs
|
||||||
fonts-default : svgs-default
|
fonts-default : $(SCRIPTS) | $(OBJDIR)
|
||||||
@$(MAKE) -f onegroup.mk fonts $(PARAM_DEFAULT)
|
@$(MAKE) -f onegroup.mk fonts $(PARAM_DEFAULT)
|
||||||
fonts-slab : svgs-slab
|
fonts-slab : $(SCRIPTS) | $(OBJDIR)
|
||||||
@$(MAKE) -f onegroup.mk fonts $(PARAM_SLAB)
|
@$(MAKE) -f onegroup.mk fonts $(PARAM_SLAB)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
PATELC = node ./node_modules/patel/bin/patel-c
|
PATELC = node ./node_modules/patel/bin/patel-c
|
||||||
SUPPORT_FILES_FROM_aki = support/glyph.js support/spiroexpand.js support/spirokit.js parameters.js
|
SUPPORT_FILES_FROM_aki = support/glyph.js support/spiroexpand.js support/spirokit.js parameters.js
|
||||||
SUPPORT_FILES = $(SUPPORT_FILES_FROM_aki) support/point.js extract.js generate.js emptyfont.toml parameters.toml support/fairify.js
|
SUPPORT_FILES = $(SUPPORT_FILES_FROM_aki) support/point.js generator.js emptyfont.toml parameters.toml support/fairify.js
|
||||||
GLYPH_SEGMENTS = glyphs/common-shapes.ptl glyphs/overmarks.ptl glyphs/letters-unified-basic.ptl glyphs/letters-unified-extended.ptl glyphs/numbers.ptl glyphs/symbol-punctuation.ptl glyphs/symbol-math.ptl glyphs/symbol-geometric.ptl glyphs/symbol-other.ptl glyphs/symbol-letter.ptl glyphs/autobuilds.ptl
|
GLYPH_SEGMENTS = glyphs/common-shapes.ptl glyphs/overmarks.ptl glyphs/letters-unified-basic.ptl glyphs/letters-unified-extended.ptl glyphs/numbers.ptl glyphs/symbol-punctuation.ptl glyphs/symbol-math.ptl glyphs/symbol-geometric.ptl glyphs/symbol-other.ptl glyphs/symbol-letter.ptl glyphs/autobuilds.ptl
|
||||||
SCRIPTS = $(SUPPORT_FILES) buildglyphs.js
|
SCRIPTS = $(SUPPORT_FILES) buildglyphs.js
|
||||||
SCRIPTS_FROM_aki = $(SUPPORT_FILES_FROM_aki) buildglyphs.js
|
SCRIPTS_FROM_aki = $(SUPPORT_FILES_FROM_aki) buildglyphs.js
|
||||||
|
|
53
onegroup.mk
53
onegroup.mk
|
@ -39,63 +39,62 @@ PASS3 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass3-,$(TARGETS))
|
||||||
PASS4 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass4-,$(TARGETS))
|
PASS4 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass4-,$(TARGETS))
|
||||||
|
|
||||||
fonts : $(TARGETS)
|
fonts : $(TARGETS)
|
||||||
|
|
||||||
fdts : $(FDTS)
|
|
||||||
svgs : $(SVG0)
|
svgs : $(SVG0)
|
||||||
|
|
||||||
|
|
||||||
# Pass 0 : file construction
|
# Pass 0 : file construction
|
||||||
|
OUTPUTS = --meta $@ --feature $(subst .fdt,.ab.fea,$@) --svg $(subst .fdt,.svg,$@) --charmap $(subst .fdt,.charmap,$(subst $(OBJDIR)/.pass0-,$(OBJDIR)/,$@))
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-thin.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-thin.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-thin s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-thin s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS)
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-extralight.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-extralight.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extralight s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-extralight s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS)
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-light.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-light.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-light s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-light s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS)
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-regular.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-regular.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-book s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-book s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS)
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-medium.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-medium.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-medium s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-medium s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS)
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-bold s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS)
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-heavy.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-heavy.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-heavy s-upright $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS)
|
||||||
|
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-thinitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-thinitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-thin s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-thin s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-extralightitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-extralightitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extralight s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-extralight s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-lightitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-lightitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-light s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-light s-italic $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-italic.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-italic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-book s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-book s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-mediumitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-mediumitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-medium s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-medium s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-bold s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-heavyitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-heavyitalic.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-heavy s-italic $(STYLE_ITALIC) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
|
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-thinoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-thinoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-thin s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-thin s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-extralightoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-extralightoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-extralight s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-extralight s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-lightoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-lightoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-light s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-light s-oblique $(STYLE_UPRIGHT) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-oblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-oblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-book s-oblique $(STYLE_oblique) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-book s-oblique $(STYLE_oblique) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-mediumoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-mediumoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-medium s-oblique $(STYLE_oblique) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-medium s-oblique $(STYLE_oblique) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-boldoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-boldoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-oblique $(STYLE_oblique) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-bold s-oblique $(STYLE_oblique) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
$(OBJDIR)/.pass0-$(PREFIX)-heavyoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
$(OBJDIR)/.pass0-$(PREFIX)-heavyoblique.fdt : $(SCRIPTS) | $(OBJDIR)
|
||||||
$(NODE_FDT) generate -o $@ iosevka $(STYLE_COMMON) w-heavy s-oblique $(STYLE_oblique) $(STYLE_SUFFIX)
|
$(NODE_FDT) generator iosevka $(STYLE_COMMON) w-heavy s-oblique $(STYLE_oblique) $(STYLE_SUFFIX) $(OUTPUTS) --uprightify 1
|
||||||
|
|
||||||
$(SVG0) : $(OBJDIR)/.pass0-%.svg : $(OBJDIR)/.pass0-%.fdt
|
$(SVG0) : $(OBJDIR)/.pass0-%.svg : $(OBJDIR)/.pass0-%.fdt
|
||||||
$(NODE) extract --uprightify 1 --svg $@ $<
|
@echo $^ "'->'" $@
|
||||||
$(ABFEAT) : $(OBJDIR)/.pass0-%.ab.fea : $(OBJDIR)/.pass0-%.fdt
|
$(ABFEAT) : $(OBJDIR)/.pass0-%.ab.fea : $(OBJDIR)/.pass0-%.fdt
|
||||||
$(NODE) extract --feature $@ $<
|
@echo $^ "'->'" $@
|
||||||
$(MAPS) : $(OBJDIR)/%.charmap : $(OBJDIR)/.pass0-%.fdt
|
$(MAPS) : $(OBJDIR)/%.charmap : $(OBJDIR)/.pass0-%.fdt
|
||||||
$(NODE) extract --charmap $@ $<
|
@echo $^ "'->'" $@
|
||||||
$(FEATURE) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea features/uprightonly.fea
|
$(FEATURE) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea features/uprightonly.fea
|
||||||
cat $^ > $@
|
cat $^ > $@
|
||||||
$(FEATITA) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea features/italiconly.fea
|
$(FEATITA) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea features/italiconly.fea
|
||||||
|
@ -105,7 +104,7 @@ $(FEATITA) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.
|
||||||
# Pass 1 : Outline cleanup and merge
|
# Pass 1 : Outline cleanup and merge
|
||||||
$(PASS1) : $(OBJDIR)/.pass1-%.ttf : pass1-cleanup.py $(OBJDIR)/.pass0-%.svg
|
$(PASS1) : $(OBJDIR)/.pass1-%.ttf : pass1-cleanup.py $(OBJDIR)/.pass0-%.svg
|
||||||
fontforge -quiet -script $^ $@ $(if $(findstring italic,$@),10,$(if $(findstring oblique,$@),10,0)) $(FAST) $(SUPPRESS_ERRORS)
|
fontforge -quiet -script $^ $@ $(if $(findstring italic,$@),10,$(if $(findstring oblique,$@),10,0)) $(FAST) $(SUPPRESS_ERRORS)
|
||||||
$(PASS2) : $(OBJDIR)/.pass2-%.ttf : pass2-smartround.js $(OBJDIR)/.pass1-%.ttf $(OBJDIR)/.pass0-%.fdt
|
$(PASS2) : $(OBJDIR)/.pass2-%.ttf : pass2-addmeta.js $(OBJDIR)/.pass1-%.ttf $(OBJDIR)/.pass0-%.fdt
|
||||||
$(NODE) $^ -o $@ --upm $(TARGETUPM)
|
$(NODE) $^ -o $@ --upm $(TARGETUPM)
|
||||||
$(PASS3) : $(OBJDIR)/.pass3-%.ttf : pass3-features.py $(OBJDIR)/.pass2-%.ttf $(OBJDIR)/.pass0-%.fea
|
$(PASS3) : $(OBJDIR)/.pass3-%.ttf : pass3-features.py $(OBJDIR)/.pass2-%.ttf $(OBJDIR)/.pass0-%.fea
|
||||||
fontforge -quiet -script $^ $@ $(TARGETUPM) $(SUPPRESS_ERRORS)
|
fontforge -quiet -script $^ $@ $(TARGETUPM) $(SUPPRESS_ERRORS)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue