From e19645da0349b16ffc3b67c8a7d3f2fa7e7cd9ea Mon Sep 17 00:00:00 2001 From: be5invis Date: Fri, 2 Oct 2020 22:39:25 -0700 Subject: [PATCH] Revert change 53a2061. Fix a crash on Linux font build (#696). --- font-src/index.js | 29 ++++------------------------- verdafile.js | 8 +++++++- 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/font-src/index.js b/font-src/index.js index a9914fc62..7d845bc59 100644 --- a/font-src/index.js +++ b/font-src/index.js @@ -2,10 +2,8 @@ const fs = require("fs-extra"); const path = require("path"); -const child_process = require("child_process"); const Toml = require("@iarna/toml"); -const which = require("which"); const BuildFont = require("./gen/build-font.js"); const Parameters = require("./support/parameters"); @@ -17,7 +15,7 @@ module.exports = async function main(argv) { const para = await getParameters(argv); const { font, glyphStore } = BuildFont(para); if (argv.oCharMap) await saveCharMap(argv, glyphStore); - if (argv.o) await saveTTF(argv, font); + if (argv.o) await saveOTD(argv, font); }; // Parameter preparation @@ -83,28 +81,9 @@ async function tryParseToml(str) { } } -// Save TTF -async function saveTTF(argv, font) { - await otfccBuild(argv.o, JSON.stringify(font)); -} -function otfccBuild(argvO, fontJson) { - const otfccOptions = ["-O3", "--keep-average-char-width", "-q"]; - return new Promise((resolve, reject) => { - const otfccBuild = which.sync("otfccbuild"); - const cp = child_process.spawn(otfccBuild, ["-o", argvO, ...otfccOptions]); - cp.stdout.on("data", data => { - console.log(`stdout: ${data}`); - }); - cp.stderr.on("data", data => { - console.error(`stderr: ${data}`); - }); - cp.on("close", code => { - if (code) reject(new Error("OTFCC returned with: " + code)); - else resolve(0); - }); - cp.stdin.write(fontJson); - cp.stdin.end(); - }); +// Save OTD +async function saveOTD(argv, font) { + await fs.writeJSON(argv.o, font); } // Save character map file diff --git a/verdafile.js b/verdafile.js index 090d18b42..fdf420117 100644 --- a/verdafile.js +++ b/verdafile.js @@ -422,9 +422,15 @@ const BuildRawTtf = file.make( const [fi] = await target.need(FontInfoOf(fn), Version); const charmap = output.dir + "/" + fn + ".charmap"; await target.need(Scripts, Parameters, de`${output.dir}`); - await node("font-src/index", { o: output.full, oCharMap: charmap, ...fi }); + const otdPath = `${output.dir}/${output.name}.otd`; + await node("font-src/index", { o: otdPath, oCharMap: charmap, ...fi }); + await optimizedOtfcc(otdPath, output.full); + await rm(otdPath); } ); +function optimizedOtfcc(from, to) { + return run(OTFCC_BUILD, from, ["-o", `${to}`], ["-O3", "--keep-average-char-width", "-q"]); +} const BuildTTF = file.make( (gr, fn) => `${BUILD}/ttf/${gr}/${fn}.ttf`,