Files
armorpaint/khafile.js
T

116 lines
4.0 KiB
JavaScript
Raw Normal View History

2019-05-25 20:15:08 +02:00
let project = new Project('ArmorPaint');
project.addSources('Sources');
project.addLibrary("iron");
project.addLibrary("zui");
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}" });
project.addAssets("Assets/defaults/*", { notinlist: true, destination: "data/defaults/{name}" });
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}" });
2019-08-21 11:54:38 +02:00
2019-05-25 20:15:08 +02:00
project.addDefine('arm_taa');
2019-08-21 11:54:38 +02:00
project.addDefine('arm_veloc');
2019-05-25 20:15:08 +02:00
project.addDefine('arm_particles');
2019-05-26 12:44:01 +02:00
project.addDefine('arm_data_dir');
2019-08-05 11:19:41 +02:00
// project.addDefine('arm_noembed');
2019-05-25 20:15:08 +02:00
2019-08-21 11:54:38 +02:00
if (process.platform === 'win32') {
project.addDefine('krom_windows');
}
else if (process.platform === 'linux') {
project.addDefine('krom_linux');
}
else if (process.platform === 'darwin') {
project.addDefine('krom_darwin');
}
2019-06-09 00:44:36 +02:00
let debug = false;
2019-08-20 10:46:56 +02:00
let raytrace = process.argv.indexOf("direct3d12") >= 0;
let build = 'painter'; // painter || creator || player
2019-06-09 00:44:36 +02:00
if (debug) {
project.addDefine('arm_debug');
2019-08-22 12:05:03 +02:00
project.addShaders("Shaders/debug/*.glsl");
2019-06-09 00:44:36 +02:00
project.addParameter('--times');
2019-08-20 10:46:56 +02:00
// project.addParameter('--no-inline');
}
else {
project.addParameter('-dce full');
2019-06-09 00:44:36 +02:00
}
2019-07-27 23:23:03 +02:00
if (raytrace) {
2019-11-19 22:13:55 +01:00
project.addAssets("Assets/raytrace/*", { notinlist: true, destination: "data/{name}" });
2019-08-21 11:54:38 +02:00
project.addAssets("Shaders/raytrace/*.cso", { notinlist: true, destination: "data/{name}" });
2019-11-19 22:13:55 +01:00
project.addAssets("Assets/readme/readme_dxr.txt", { notinlist: true, destination: "{name}" });
2019-07-27 23:23:03 +02:00
}
2019-10-03 21:19:02 +02:00
else {
2019-11-19 22:13:55 +01:00
project.addAssets("Assets/readme/readme.txt", { notinlist: true, destination: "{name}" });
2019-12-11 21:30:29 +01:00
project.addDefine('rp_voxelao');
project.addDefine('arm_voxelgi_revox');
2019-10-03 21:19:02 +02:00
}
2019-07-27 23:23:03 +02:00
2019-10-09 20:52:57 +02:00
if (process.platform === 'darwin') {
2019-11-19 22:13:55 +01:00
project.addAssets("Assets/readme/readme_macos.txt", { notinlist: true, destination: "INSTRUCTIONS.txt" });
2019-10-09 20:52:57 +02:00
}
2019-06-06 12:54:44 +02:00
if (process.platform === 'win32') {
2019-08-22 12:05:03 +02:00
project.addShaders("Shaders/voxel_hlsl/*.glsl", { noprocessing: true, noembed: false });
2019-06-06 12:54:44 +02:00
}
else {
2019-08-22 12:05:03 +02:00
project.addShaders("Shaders/voxel_glsl/*.glsl", { noembed: false });
2019-06-06 12:54:44 +02:00
}
2019-08-20 10:46:56 +02: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
project.addDefine('arm_painter');
2019-11-13 15:17:10 +01:00
project.addParameter('--macro include("arm.node.brush")');
2019-08-20 10:46:56 +02:00
project.addDefine('arm_appwh');
project.addDefine('arm_skip_envmap');
project.addDefine('arm_resizable');
if (process.platform === 'win32') {
2019-11-19 22:13:55 +01:00
project.addAssets("Assets/bin/cmft.exe", { notinlist: true, destination: "data/{name}" });
2019-08-20 10:46:56 +02:00
}
else if (process.platform === 'linux') {
2019-11-19 22:13:55 +01:00
project.addAssets("Assets/bin/cmft-linux64", { notinlist: true, destination: "data/{name}" });
2019-08-20 10:46:56 +02:00
}
else if (process.platform === 'darwin') {
2019-11-19 22:13:55 +01:00
project.addAssets("Assets/bin/cmft-osx", { notinlist: true, destination: "data/{name}" });
2019-08-20 10:46:56 +02:00
}
if (build === 'creator') {
project.addDefine('arm_creator');
}
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}" });
2019-11-11 17:14:51 +01:00
if (process.platform === 'win32') {
project.addShaders("Shaders/painter/hlsl/*.glsl", { noprocessing: true, noembed: false });
}
else {
project.addShaders("Shaders/painter/glsl/*.glsl", { noembed: false });
}
2019-11-30 14:24:26 +01:00
}
if (build === 'painter') {
project.addShaders("Shaders/painter/*.glsl", { noembed: false});
project.addAssets("Assets/painter/*", { notinlist: true, destination: "data/{name}" });
2019-08-20 10:46:56 +02:00
project.addDefine('kha_no_ogg');
2019-12-11 21:30:29 +01:00
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});
2019-08-20 10:46:56 +02:00
project.addDefine('arm_audio');
project.addDefine('arm_soundcompress');
project.addDefine('arm_skin');
2019-12-02 19:04:07 +01:00
project.addDefine('arm_world');
2019-12-03 00:25:38 +01:00
project.addDefine('arm_physics');
2019-08-18 15:32:18 +02:00
}
2019-05-25 20:15:08 +02:00
resolve(project);