Files
armorpaint/khafile.js
T

148 lines
5.2 KiB
JavaScript
Raw Normal View History

2020-03-20 13:48:20 +01:00
let debug = false;
2020-05-02 17:00:00 +02:00
let android = process.argv.indexOf("android") >= 0;
let ios = process.argv.indexOf("ios") >= 0;
let win_hlsl = process.platform === "win32" && process.argv.indexOf("opengl") < 0;
2020-07-21 18:56:06 +02:00
let d3d12 = process.argv.indexOf("direct3d12") >= 0;
let vulkan = process.argv.indexOf("vulkan") >= 0;
let raytrace = d3d12 || vulkan;
2020-05-11 22:50:32 +02:00
let metal = process.argv.indexOf("metal") >= 0;
2020-08-07 15:22:56 +02:00
let vr = process.argv.indexOf("--vr") >= 0;
2020-11-04 13:21:57 +01:00
let snapshot = process.argv.indexOf("--snapshot") >= 0;
2021-11-06 12:45:15 +01:00
let plugin_embed = ios;
2022-02-21 14:40:03 +01:00
let physics = !ios;
2019-05-25 20:15:08 +02:00
2020-03-20 13:48:20 +01:00
let project = new Project("ArmorPaint");
2020-02-22 19:10:20 +01:00
project.addSources("Sources");
2019-05-25 20:15:08 +02:00
project.addLibrary("iron");
project.addLibrary("zui");
2021-04-01 21:05:29 +02:00
project.addLibrary("armorbase");
2021-06-25 16:09:47 +02:00
project.addShaders("Shaders/*.glsl", { embed: snapshot});
project.addAssets("Assets/*", { destination: "data/{name}", embed: snapshot });
project.addShaders("Libraries/armorbase/Shaders/common/*.glsl", { embed: snapshot});
project.addAssets("Libraries/armorbase/Assets/common/*", { destination: "data/{name}", embed: snapshot });
2020-11-04 20:49:49 +01:00
if (!snapshot) {
2020-11-13 23:20:02 +01:00
project.addDefine("arm_noembed");
2021-06-25 16:09:47 +02:00
project.addAssets("Libraries/armorbase/Assets/common/extra/*", { destination: "data/{name}" });
2020-11-09 20:06:23 +01:00
}
project.addAssets("Assets/export_presets/*", { destination: "data/export_presets/{name}" });
project.addAssets("Assets/keymap_presets/*", { destination: "data/keymap_presets/{name}" });
project.addAssets("Assets/locale/*", { destination: "data/locale/{name}" });
project.addAssets("Assets/licenses/**", { destination: "data/licenses/{name}" });
project.addAssets("Assets/plugins/*", { destination: "data/plugins/{name}" });
2021-11-06 12:45:15 +01:00
if (plugin_embed) {
project.addAssets("Assets/plugins/embed/*", { destination: "data/plugins/{name}" });
}
else {
project.addAssets("Assets/plugins/wasm/*", { destination: "data/plugins/{name}" });
}
2020-11-09 20:06:23 +01:00
project.addAssets("Assets/meshes/*", { destination: "data/meshes/{name}" });
2021-06-25 16:09:47 +02:00
project.addAssets("Libraries/armorbase/Assets/licenses/**", { destination: "data/licenses/{name}" });
project.addAssets("Libraries/armorbase/Assets/themes/*.json", { destination: "data/themes/{name}" });
2020-10-27 12:47:04 +01:00
if (metal) {
2021-06-25 16:09:47 +02:00
project.addShaders("Libraries/armorbase/Shaders/common/metal/*.glsl", { embed: snapshot});
project.addAssets("Libraries/armorbase/Assets/common/metal/*", { destination: "data/{name}" });
2020-10-27 12:47:04 +01:00
}
2020-10-29 18:24:10 +01:00
project.addDefine("js-es=6");
2020-10-27 12:47:04 +01:00
project.addParameter("--macro include('arm.node.brush')");
project.addDefine("kha_no_ogg");
project.addDefine("zui_translate");
2021-02-10 12:10:29 +01:00
project.addDefine("arm_data_dir");
2020-10-27 12:47:04 +01:00
project.addDefine("arm_ltc");
project.addDefine("arm_appwh");
project.addDefine("arm_skip_envmap");
project.addDefine("arm_resizable");
2020-02-22 19:10:20 +01:00
project.addDefine("arm_taa");
project.addDefine("arm_veloc");
project.addDefine("arm_particles");
2020-10-27 12:47:04 +01:00
// project.addDefine("arm_skin");
2020-03-20 13:48:20 +01:00
2022-02-21 14:40:03 +01:00
if (physics) {
project.addDefine("arm_physics");
project.addAssets("Assets/plugins/wasm/ammo/*", { destination: "data/plugins/{name}" });
}
2020-02-10 03:14:33 +01:00
if (android) {
2020-02-22 19:10:20 +01:00
project.addDefine("krom_android");
project.addDefine("kha_android");
project.addDefine("kha_android_rmb");
2020-02-10 03:14:33 +01:00
}
2020-02-22 19:23:42 +01:00
else if (ios) {
project.addDefine("krom_ios");
project.addDefine("kha_ios");
}
2020-02-22 19:10:20 +01:00
else if (process.platform === "win32") {
project.addDefine("krom_windows");
2020-05-23 11:43:55 +02:00
project.addDefine("kha_windows");
2019-08-21 11:54:38 +02:00
}
2020-02-22 19:10:20 +01:00
else if (process.platform === "linux") {
project.addDefine("krom_linux");
2020-05-23 11:43:55 +02:00
project.addDefine("kha_linux");
2019-08-21 11:54:38 +02:00
}
2020-02-22 19:10:20 +01:00
else if (process.platform === "darwin") {
project.addDefine("krom_darwin");
2020-05-23 11:43:55 +02:00
project.addDefine("kha_darwin");
2019-08-21 11:54:38 +02:00
}
2021-06-19 09:05:24 +02:00
if (android || ios) {
project.addDefine("arm_touchui"); // Use touch friendly UI
project.addDefine("zui_touchui");
}
2019-06-09 00:44:36 +02:00
if (debug) {
2020-02-22 19:10:20 +01:00
project.addDefine("arm_debug");
project.addParameter("--times");
// project.addParameter("--no-inline");
2019-08-20 10:46:56 +02:00
}
else {
2020-02-22 19:10:20 +01:00
project.addParameter("-dce full");
2020-06-30 18:26:03 +02:00
project.addDefine("analyzer-optimize");
2019-06-09 00:44:36 +02:00
}
2020-08-07 15:22:56 +02:00
if (vr) {
project.addDefine("arm_vr");
2020-11-09 20:06:23 +01:00
project.addAssets("Assets/readme/readme_vr.txt", { destination: "{name}" });
2020-08-07 15:22:56 +02:00
}
2020-11-04 13:21:57 +01:00
if (snapshot) {
project.addDefine("arm_snapshot");
2020-11-04 20:49:49 +01:00
project.addDefine("arm_image_embed");
2020-11-13 23:20:02 +01:00
project.addDefine("arm_shader_embed");
2020-11-05 12:16:14 +01:00
project.addParameter("--no-traces");
2020-11-04 13:21:57 +01:00
}
2020-11-09 20:06:23 +01:00
project.addAssets("Assets/readme/readme.txt", { destination: "{name}" });
2020-02-11 01:54:50 +01:00
2019-07-27 23:23:03 +02:00
if (raytrace) {
2021-06-25 16:09:47 +02:00
project.addAssets("Libraries/armorbase/Assets/raytrace/*", { destination: "data/{name}", embed: snapshot });
2020-07-21 18:56:06 +02:00
if (d3d12) {
2021-06-25 16:09:47 +02:00
project.addAssets("Libraries/armorbase/Shaders/raytrace/*.cso", { destination: "data/{name}", embed: snapshot });
2020-11-09 20:06:23 +01:00
project.addAssets("Assets/readme/readme_dxr.txt", { destination: "{name}" });
2020-07-21 18:56:06 +02:00
}
else if (vulkan) {
2021-06-25 16:09:47 +02:00
project.addAssets("Libraries/armorbase/Shaders/raytrace/*.spirv", { destination: "data/{name}", embed: snapshot });
2020-11-09 20:06:23 +01:00
project.addAssets("Assets/readme/readme_vkrt.txt", { destination: "{name}" });
2020-07-21 18:56:06 +02:00
}
2019-07-27 23:23:03 +02:00
}
2020-02-11 22:10:09 +01:00
if (android) {
2020-11-09 20:06:23 +01:00
project.addAssets("Assets/readme/readme_android.txt", { destination: "{name}" });
2019-10-03 21:19:02 +02:00
}
2020-02-22 19:23:42 +01:00
else if (ios) {
2020-11-09 20:06:23 +01:00
project.addAssets("Assets/readme/readme_ios.txt", { destination: "{name}" });
2020-02-22 19:23:42 +01:00
}
2019-10-09 20:52:57 +02:00
2020-02-22 19:23:42 +01:00
if (process.platform !== "darwin" && !raytrace && !android && !ios) {
2020-02-22 19:10:20 +01:00
project.addDefine("rp_voxelao");
project.addDefine("arm_voxelgi_revox");
2020-02-10 03:14:33 +01:00
2020-02-22 19:10:20 +01:00
if (process.platform === "win32" && win_hlsl) {
2021-06-25 16:09:47 +02:00
project.addShaders("Libraries/armorbase/Shaders/voxel_hlsl/*.glsl", { embed: snapshot, noprocessing: true });
2020-02-11 22:10:09 +01:00
}
else {
2021-06-25 16:09:47 +02:00
project.addShaders("Libraries/armorbase/Shaders/voxel_glsl/*.glsl", { embed: snapshot });
2020-02-11 22:10:09 +01:00
}
2019-06-06 12:54:44 +02:00
}
2019-05-25 20:15:08 +02:00
resolve(project);