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-03-20 13:48:20 +01:00
|
|
|
let build = "painter"; // painter || creator || player
|
2020-08-07 15:22:56 +02:00
|
|
|
let vr = process.argv.indexOf("--vr") >= 0;
|
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");
|
2020-05-07 13:56:28 +02:00
|
|
|
project.addLibrary("syslib");
|
|
|
|
|
project.addLibrary("formatlib");
|
|
|
|
|
project.addLibrary("geomlib");
|
|
|
|
|
project.addLibrary("nodelib");
|
|
|
|
|
project.addLibrary("shaderlib");
|
2019-08-22 12:05:03 +02:00
|
|
|
project.addShaders("Shaders/common/*.glsl", { noembed: false});
|
2019-11-19 22:13:55 +01:00
|
|
|
project.addAssets("Assets/common/*", { notinlist: true, destination: "data/{name}" });
|
2020-03-16 10:42:20 +01:00
|
|
|
project.addAssets("Assets/fonts/*", { notinlist: true, destination: "data/{name}" });
|
2020-03-17 22:47:49 +01:00
|
|
|
project.addAssets("Assets/locale/*", { notinlist: true, destination: "data/locale/{name}" });
|
2019-11-19 22:13:55 +01:00
|
|
|
project.addAssets("Assets/licenses/*", { notinlist: true, destination: "data/licenses/{name}" });
|
|
|
|
|
project.addAssets("Assets/plugins/*", { notinlist: true, destination: "data/plugins/{name}" });
|
|
|
|
|
project.addAssets("Assets/themes/*", { notinlist: true, destination: "data/themes/{name}" });
|
2020-04-02 11:22:48 +02:00
|
|
|
project.addAssets("Assets/meshes/*", { notinlist: true, destination: "data/meshes/{name}" });
|
2019-08-21 11:54:38 +02:00
|
|
|
|
2020-02-22 19:10:20 +01:00
|
|
|
project.addDefine("arm_taa");
|
|
|
|
|
project.addDefine("arm_veloc");
|
|
|
|
|
project.addDefine("arm_particles");
|
2020-03-20 13:48:20 +01:00
|
|
|
|
2020-04-29 16:38:07 +02:00
|
|
|
if (!android) {
|
2020-02-22 19:10:20 +01:00
|
|
|
project.addDefine("arm_data_dir");
|
2020-02-10 03:14:33 +01:00
|
|
|
}
|
2019-05-25 20:15:08 +02:00
|
|
|
|
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
|
|
|
}
|
|
|
|
|
|
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-02-11 01:54:50 +01:00
|
|
|
project.addAssets("Assets/readme/readme.txt", { notinlist: true, destination: "{name}" });
|
|
|
|
|
|
2019-07-27 23:23:03 +02:00
|
|
|
if (raytrace) {
|
2020-05-07 13:56:28 +02:00
|
|
|
project.addLibrary("xenon");
|
|
|
|
|
project.addAssets("Libraries/xenon/Assets/*", { notinlist: true, destination: "data/{name}" });
|
2020-07-21 18:56:06 +02:00
|
|
|
if (d3d12) {
|
|
|
|
|
project.addAssets("Libraries/xenon/Shaders/*.cso", { notinlist: true, destination: "data/{name}" });
|
|
|
|
|
project.addAssets("Assets/readme/readme_dxr.txt", { notinlist: true, destination: "{name}" });
|
|
|
|
|
}
|
|
|
|
|
else if (vulkan) {
|
2020-08-04 17:13:04 +02:00
|
|
|
project.addAssets("Libraries/xenon/Shaders/*.spirv", { notinlist: true, destination: "data/{name}" });
|
2020-07-21 18:56:06 +02:00
|
|
|
project.addAssets("Assets/readme/readme_vkrt.txt", { notinlist: true, destination: "{name}" });
|
|
|
|
|
}
|
2019-07-27 23:23:03 +02:00
|
|
|
}
|
2020-02-11 22:10:09 +01:00
|
|
|
|
|
|
|
|
if (android) {
|
|
|
|
|
project.addAssets("Assets/readme/readme_android.txt", { notinlist: true, destination: "{name}" });
|
2019-10-03 21:19:02 +02:00
|
|
|
}
|
2020-02-22 19:23:42 +01:00
|
|
|
else if (ios) {
|
|
|
|
|
project.addAssets("Assets/readme/readme_ios.txt", { notinlist: true, destination: "{name}" });
|
|
|
|
|
}
|
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) {
|
2020-02-11 22:10:09 +01:00
|
|
|
project.addShaders("Shaders/voxel_hlsl/*.glsl", { noprocessing: true, noembed: false });
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
project.addShaders("Shaders/voxel_glsl/*.glsl", { noembed: false });
|
|
|
|
|
}
|
2019-06-06 12:54:44 +02:00
|
|
|
}
|
|
|
|
|
|
2020-02-22 19:10:20 +01:00
|
|
|
if (build === "player") {
|
|
|
|
|
project.addDefine("arm_player");
|
2019-05-26 15:33:09 +02:00
|
|
|
}
|
2019-08-20 10:46:56 +02:00
|
|
|
else { // painter, creator
|
2020-02-22 19:10:20 +01:00
|
|
|
project.addDefine("arm_painter");
|
|
|
|
|
project.addParameter("--macro include('arm.node.brush')");
|
|
|
|
|
project.addDefine("arm_appwh");
|
|
|
|
|
project.addDefine("arm_skip_envmap");
|
|
|
|
|
project.addDefine("arm_resizable");
|
|
|
|
|
if (build === "creator") {
|
|
|
|
|
project.addDefine("arm_creator");
|
2019-08-20 10:46:56 +02:00
|
|
|
}
|
2019-05-26 15:33:09 +02:00
|
|
|
|
2019-11-19 22:13:55 +01:00
|
|
|
project.addAssets("Assets/painter/export_presets/*", { notinlist: true, destination: "data/export_presets/{name}" });
|
2020-01-10 15:40:20 +01:00
|
|
|
project.addAssets("Assets/painter/keymap_presets/*", { notinlist: true, destination: "data/keymap_presets/{name}" });
|
2019-11-30 14:24:26 +01:00
|
|
|
}
|
|
|
|
|
|
2020-02-22 19:10:20 +01:00
|
|
|
if (build === "painter") {
|
2019-11-30 14:24:26 +01:00
|
|
|
project.addShaders("Shaders/painter/*.glsl", { noembed: false});
|
|
|
|
|
project.addAssets("Assets/painter/*", { notinlist: true, destination: "data/{name}" });
|
2020-05-11 22:50:32 +02:00
|
|
|
if (metal) {
|
|
|
|
|
project.addShaders("Shaders/painter/metal/*.glsl", { noembed: false});
|
|
|
|
|
project.addAssets("Assets/painter/metal/*", { notinlist: true, destination: "data/{name}" });
|
|
|
|
|
}
|
2020-02-22 19:10:20 +01:00
|
|
|
project.addDefine("kha_no_ogg");
|
|
|
|
|
project.addDefine("arm_ltc");
|
2019-08-20 10:46:56 +02:00
|
|
|
}
|
2019-11-30 14:24:26 +01:00
|
|
|
else { // player, creator
|
2019-11-19 22:13:55 +01:00
|
|
|
project.addAssets("Assets/creator/*", { notinlist: true, destination: "data/{name}" });
|
|
|
|
|
project.addAssets("Assets/creator/plugins/*", { notinlist: true, destination: "data/plugins/{name}" });
|
2019-08-22 12:05:03 +02:00
|
|
|
project.addShaders("Shaders/creator/*.glsl", { noembed: false});
|
2020-02-22 19:10:20 +01:00
|
|
|
project.addDefine("arm_audio");
|
|
|
|
|
project.addDefine("arm_soundcompress");
|
|
|
|
|
project.addDefine("arm_skin");
|
|
|
|
|
project.addDefine("arm_world");
|
|
|
|
|
project.addDefine("arm_physics");
|
2019-08-18 15:32:18 +02:00
|
|
|
}
|
|
|
|
|
|
2019-05-25 20:15:08 +02:00
|
|
|
resolve(project);
|