UNPKG

wasmux

Version:

WebAssembly toolchain for compiling libc and kernel into system-level WASM modules

35 lines (30 loc) 1.07 kB
import fs from "node:fs"; import bitmake from "bitmake"; export default async function(mk) { const lines = []; lines.push(bitmake.cxx.generatedScriptNameComment(import.meta.filename)); lines.push(""); for (const [name, entry] of Object.entries(mk.SCRIPT_INPUT)) { if (entry.description) { lines.push(`/* ${entry.description} */`); } if (typeof entry.value === "boolean") { lines.push(`#define ${name} ${entry.value ? 1 : 0}`); } else if (typeof entry.value === "number") { lines.push(`#define ${name} ${entry.value}`); } else if (typeof entry.value === "string") { lines.push(`#define ${name} "${entry.value}"`); } else if (Array.isArray(entry.value)) { lines.push(`#define ${name} "${entry.value.join(";")}"`); } else { throw new Error(`"${name}" has ${entry.value} value`); } lines.push(""); } await fs.promises.mkdir(mk.SCRIPT_OUTPUT.dirname().toPath(), { recursive: true }); await fs.promises.writeFile(mk.SCRIPT_OUTPUT.toPath(), lines.join('\n'), "utf8"); }