const PADDING = 24; for(var i = 1; i < ARGV.length; i++) { if(ARGV[i] == "--help") { var keys; console.log("PMake " + pmake.VERSION + " - Pyrite's build script generator"); console.log(""); console.log("Usage: " + ARGV[0] + " [options]"); keys = Object.keys(pmake.options); for(var i = 0; i < keys.length; i++) { console.log(""); console.log("OPTIONS - " + keys[i]); var keys2 = Object.keys(pmake.options[keys[i]]); for(var j = 0; j < keys2.length; j++) { const opt = pmake.options[keys[i]][keys2[j]]; var arg = ""; var opts = []; if(opt.option) { arg = "=" + opt.option; } console.log(" --" + keys2[j] + arg + " ".repeat(PADDING - keys2[j].length - 2 - arg.length) + opt.description); if(!opt.options) { } else if((typeof opt.options) == "function") { opts = opt.options(); } else { opts = opt.options; } if(opts.length > 0) { for(var k = 0; k < opts.length; k++) { console.log(" " + opts[k]); } console.log(""); } } } console.log(""); console.log("ACTIONS"); keys = Object.keys(pmake.actions); for(var i = 0; i < keys.length; i++) { console.log(" " + keys[i] + " ".repeat(PADDING - keys[i].length) + pmake.actions[keys[i]].description); } process.exit(0); } else if(ARGV[i].startsWith("--")) { console.log("Error: invalid option '" + ARGV[i].substr(2) + "'"); process.exit(1); } } (function() { function make(output) { var mk = new pmake.File(output, "w"); mk.write("# This file was auto-generated. Do not edit manually!\n"); mk.write("\n"); mk.write("SILENT = @\n"); mk.write("\n"); if(output == "Makefile") { var targets = pmake.resolveProjects(pmake.projects); for(var i = 0; i < targets.length; i++) { mk.write(targets[i].target + ":\n"); mk.write(" @$(MAKE) -f " + targets[i].target + ".make\n"); mk.write("\n"); } } else { } mk.close(); } make("Makefile"); var targets = pmake.resolveProjects(pmake.projects); for(var i = 0; i < targets.length; i++) { make(targets[i].target + ".make"); } })();