2023-04-17 21:15:08 +02:00
|
|
|
|
2023-12-04 17:14:50 +01:00
|
|
|
let flags = globalThis.flags;
|
2023-04-17 21:15:08 +02:00
|
|
|
flags.android = process.argv.indexOf("android") >= 0;
|
|
|
|
|
flags.ios = process.argv.indexOf("ios") >= 0;
|
|
|
|
|
flags.d3d12 = process.argv.indexOf("direct3d12") >= 0;
|
|
|
|
|
flags.vulkan = process.argv.indexOf("vulkan") >= 0;
|
|
|
|
|
flags.metal = process.argv.indexOf("metal") >= 0;
|
2023-07-04 17:56:02 +02:00
|
|
|
flags.raytrace = flags.d3d12 || flags.vulkan || flags.metal;
|
2023-04-17 21:15:08 +02:00
|
|
|
flags.snapshot = process.argv.indexOf("--snapshot") >= 0;
|
|
|
|
|
flags.plugin_embed = flags.ios;
|
|
|
|
|
flags.physics = !flags.ios;
|
2023-07-04 17:56:02 +02:00
|
|
|
flags.voxels = !flags.raytrace && !flags.android && !flags.ios;
|
2023-04-17 21:15:08 +02:00
|
|
|
|
2023-12-04 17:14:50 +01:00
|
|
|
flags.with_d3dcompiler = true;
|
|
|
|
|
flags.with_nfd = true;
|
|
|
|
|
flags.with_tinydir = true;
|
|
|
|
|
flags.with_zlib = true;
|
|
|
|
|
flags.with_stb_image_write = true;
|
|
|
|
|
flags.with_g2 = true;
|
|
|
|
|
flags.with_iron = true;
|
|
|
|
|
flags.with_zui = true;
|
|
|
|
|
|
|
|
|
|
flags.on_c_project_created = async function(c_project, platform, graphics) {
|
|
|
|
|
c_project.addDefine("IDLE_SLEEP");
|
|
|
|
|
let dir = flags.name.toLowerCase();
|
|
|
|
|
|
|
|
|
|
if (graphics === "vulkan") {
|
|
|
|
|
c_project.addDefine("KORE_VKRT");
|
|
|
|
|
await c_project.addProject("../" + dir + "/glsl_to_spirv");
|
|
|
|
|
}
|
|
|
|
|
if (platform === "ios") {
|
|
|
|
|
flags.with_plugin_embed = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (flags.with_onnx) {
|
|
|
|
|
c_project.addDefine("WITH_ONNX");
|
|
|
|
|
c_project.addIncludeDir("../" + dir + "/onnx/include");
|
2023-12-04 17:35:39 +01:00
|
|
|
console.log(platform);
|
|
|
|
|
if (platform === 'win32') {
|
2023-12-04 17:14:50 +01:00
|
|
|
c_project.addLib("../" + dir + "/onnx/win32/onnxruntime");
|
|
|
|
|
}
|
2023-12-04 17:35:39 +01:00
|
|
|
else if (platform === 'linux') {
|
2023-12-04 17:14:50 +01:00
|
|
|
// patchelf --set-rpath . ArmorLab
|
2023-12-04 17:35:39 +01:00
|
|
|
c_project.addLib("onnxruntime -L" + flags.dirname + "/../" + dir + "/onnx/linux");
|
2023-12-07 23:35:02 +01:00
|
|
|
// c_project.addLib("onnxruntime_providers_cuda");
|
|
|
|
|
// c_project.addLib("onnxruntime_providers_shared");
|
|
|
|
|
// c_project.addLib("cublasLt");
|
|
|
|
|
// c_project.addLib("cublas");
|
|
|
|
|
// c_project.addLib("cudart");
|
|
|
|
|
// c_project.addLib("cudnn");
|
|
|
|
|
// c_project.addLib("cufft");
|
|
|
|
|
// c_project.addLib("curand");
|
2023-12-04 17:14:50 +01:00
|
|
|
}
|
2023-12-04 17:35:39 +01:00
|
|
|
else if (platform === 'osx') {
|
2023-12-04 17:14:50 +01:00
|
|
|
c_project.addLib("../" + dir + "/onnx/macos/libonnxruntime.1.14.1.dylib");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (flags.with_plugin_embed) {
|
2023-12-05 23:50:55 +01:00
|
|
|
await c_project.addProject("../" + dir + "/Plugins");
|
2023-12-04 17:14:50 +01:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2023-04-17 21:15:08 +02:00
|
|
|
let project = new Project("Base");
|
|
|
|
|
project.addSources("Sources");
|
|
|
|
|
project.addShaders("../armorcore/Shaders/*.glsl", { embed: flags.snapshot });
|
|
|
|
|
project.addShaders("Shaders/*.glsl", { embed: flags.snapshot });
|
|
|
|
|
project.addAssets("Assets/*", { destination: "data/{name}", embed: flags.snapshot });
|
|
|
|
|
project.addAssets("Assets/locale/*", { destination: "data/locale/{name}" });
|
|
|
|
|
project.addAssets("Assets/licenses/**", { destination: "data/licenses/{name}" });
|
2023-05-14 19:12:44 +02:00
|
|
|
project.addAssets("Assets/plugins/*", { destination: "data/plugins/{name}" });
|
2023-04-17 21:15:08 +02:00
|
|
|
project.addAssets("Assets/themes/*.json", { destination: "data/themes/{name}" });
|
|
|
|
|
|
|
|
|
|
if (flags.snapshot) {
|
|
|
|
|
project.addDefine("arm_snapshot");
|
|
|
|
|
project.addDefine("arm_image_embed");
|
|
|
|
|
project.addDefine("arm_shader_embed");
|
|
|
|
|
project.addParameter("--no-traces");
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
project.addDefine("arm_noembed");
|
|
|
|
|
project.addAssets("Assets/extra/*", { destination: "data/{name}" });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
project.addParameter("--macro include('arm.logic')");
|
|
|
|
|
project.addParameter("-dce full");
|
|
|
|
|
project.addDefine("analyzer-optimize");
|
|
|
|
|
project.addDefine("js-es=6");
|
|
|
|
|
project.addDefine("arm_particles");
|
|
|
|
|
// project.addDefine("arm_skin");
|
2023-12-04 12:23:46 +01:00
|
|
|
// project.addDefine("arm_audio");
|
2023-04-17 21:15:08 +02:00
|
|
|
|
|
|
|
|
if (flags.android) {
|
2023-12-04 15:10:05 +01:00
|
|
|
project.addDefine("krom_android_rmb");
|
2023-04-17 21:15:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (flags.raytrace) {
|
|
|
|
|
project.addAssets("Assets/raytrace/*", { destination: "data/{name}", embed: flags.snapshot });
|
|
|
|
|
|
|
|
|
|
if (flags.d3d12) {
|
|
|
|
|
project.addAssets("Shaders/raytrace/*.cso", { destination: "data/{name}", embed: flags.snapshot });
|
|
|
|
|
}
|
|
|
|
|
else if (flags.vulkan) {
|
|
|
|
|
project.addAssets("Shaders/raytrace/*.spirv", { destination: "data/{name}", embed: flags.snapshot });
|
|
|
|
|
}
|
2023-07-04 17:56:02 +02:00
|
|
|
else if (flags.metal) {
|
|
|
|
|
project.addAssets("Shaders/raytrace/*.metal", { destination: "data/{name}", embed: flags.snapshot });
|
|
|
|
|
}
|
2023-04-17 21:15:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (flags.voxels) {
|
2023-12-04 12:23:46 +01:00
|
|
|
project.addDefine("arm_voxels");
|
2023-04-17 21:15:08 +02:00
|
|
|
|
2023-12-04 12:23:46 +01:00
|
|
|
if (process.platform === "win32") {
|
2023-04-17 21:15:08 +02:00
|
|
|
project.addShaders("Shaders/voxel_hlsl/*.glsl", { embed: flags.snapshot, noprocessing: true });
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
project.addShaders("Shaders/voxel_glsl/*.glsl", { embed: flags.snapshot });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resolve(project);
|