From dc389780af84a26e5a4edc158d5aef927721c1e9 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Wed, 4 Nov 2020 13:21:57 +0100 Subject: [PATCH] Improve snapshot handling --- README.md | 4 +++- Sources/Main.hx | 11 ++++++++--- Sources/arm/util/BuildMacros.hx | 6 ++++++ khafile.js | 5 +++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9aa74198..c04a5990 100644 --- a/README.md +++ b/README.md @@ -118,8 +118,10 @@ git submodule update --init --recursive **Generating a v8 snapshot file** ```bash +# Optional, used in release builds for best performance +node armorcore/make -g api --snapshot ./Krom . --snapshot -# Generates a `krom.bin` file +# Generates a `krom.bin` file from `krom.js` file ``` **Generating a locale file** diff --git a/Sources/Main.hx b/Sources/Main.hx index d076518d..69328c4b 100644 --- a/Sources/Main.hx +++ b/Sources/Main.hx @@ -23,15 +23,20 @@ class Main { public static var version = "0.8"; public static var sha = BuildMacros.sha().substr(1, 7); public static var date = BuildMacros.date().split(" ")[0]; - static var tasks: Int; - // Generating snapshot public static function main() { + #if arm_snapshot + js.Syntax.code("globalThis.kickstart = Main.kickstart"); + + #else + + kickstart(); + + #end } - // Program startup @:keep public static function kickstart() { // Used to locate external application data folder diff --git a/Sources/arm/util/BuildMacros.hx b/Sources/arm/util/BuildMacros.hx index 2a61f8c4..e016af2a 100644 --- a/Sources/arm/util/BuildMacros.hx +++ b/Sources/arm/util/BuildMacros.hx @@ -12,4 +12,10 @@ class BuildMacros { var proc = new sys.io.Process("git", ["log", "--pretty=format:'%h'", "-n", "1"]); return Context.makeExpr(proc.stdout.readLine(), Context.currentPos()); } + + macro public static function embed(path: String) { + var bytes = sys.io.File.getBytes(path); + Context.addResource(path, bytes); + return Context.makeExpr("", Context.currentPos()); + } } diff --git a/khafile.js b/khafile.js index 8506dc65..63b3a986 100644 --- a/khafile.js +++ b/khafile.js @@ -8,6 +8,7 @@ let vulkan = process.argv.indexOf("vulkan") >= 0; let raytrace = d3d12 || vulkan; let metal = process.argv.indexOf("metal") >= 0; let vr = process.argv.indexOf("--vr") >= 0; +let snapshot = process.argv.indexOf("--snapshot") >= 0; let project = new Project("ArmorPaint"); project.addSources("Sources"); @@ -86,6 +87,10 @@ if (vr) { project.addAssets("Assets/readme/readme_vr.txt", { notinlist: true, destination: "{name}" }); } +if (snapshot) { + project.addDefine("arm_snapshot"); +} + project.addAssets("Assets/readme/readme.txt", { notinlist: true, destination: "{name}" }); if (raytrace) {