diff --git a/armorforge/plugins/plugins.c b/armorforge/plugins/plugins.c index 467b5e26..e7e86a13 100644 --- a/armorforge/plugins/plugins.c +++ b/armorforge/plugins/plugins.c @@ -1,5 +1,5 @@ -#include "../../../base/sources/plugin_api.h" +#include "../../../base/plugins/plugin_api.h" // void plugin_embed() { // JSValue global_obj = JS_GetGlobalObject(js_ctx); diff --git a/armorlab/plugins/plugins.c b/armorlab/plugins/plugins.c index 2bed8814..02580e73 100644 --- a/armorlab/plugins/plugins.c +++ b/armorlab/plugins/plugins.c @@ -1,5 +1,5 @@ -#include "../../../base/sources/plugin_api.h" +#include "../../../base/plugins/plugin_api.h" #include "iron_array.h" #include "proc_texsynth/proc_texsynth.h" diff --git a/armorpaint/plugins/plugins.c b/armorpaint/plugins/plugins.c index 7d13cfd9..e5540ba5 100644 --- a/armorpaint/plugins/plugins.c +++ b/armorpaint/plugins/plugins.c @@ -1,5 +1,5 @@ -#include "../../../base/sources/plugin_api.h" +#include "../../../base/plugins/plugin_api.h" void proc_xatlas_unwrap(void *mesh); FN(proc_xatlas_unwrap) { diff --git a/armorsculpt/plugins/plugins.c b/armorsculpt/plugins/plugins.c index f4ed47c9..2bf49faf 100644 --- a/armorsculpt/plugins/plugins.c +++ b/armorsculpt/plugins/plugins.c @@ -1,5 +1,5 @@ -#include "../../../base/sources/plugin_api.h" +#include "../../../base/plugins/plugin_api.h" void plugin_embed() { JSValue global_obj = JS_GetGlobalObject(js_ctx); diff --git a/base/sources/plugin_api.c b/base/plugins/plugin_api.c similarity index 100% rename from base/sources/plugin_api.c rename to base/plugins/plugin_api.c diff --git a/base/sources/plugin_api.h b/base/plugins/plugin_api.h similarity index 100% rename from base/sources/plugin_api.h rename to base/plugins/plugin_api.h diff --git a/base/plugins/plugins.c b/base/plugins/plugins.c index c27f33b4..a4a5a8e4 100644 --- a/base/plugins/plugins.c +++ b/base/plugins/plugins.c @@ -1,5 +1,5 @@ -#include "../../../base/sources/plugin_api.h" +#include "../../../base/plugins/plugin_api.h" void plugin_embed_base() { JSValue global_obj = JS_GetGlobalObject(js_ctx); diff --git a/base/plugins/project.js b/base/plugins/project.js index 67882431..b0eba11c 100644 --- a/base/plugins/project.js +++ b/base/plugins/project.js @@ -1,5 +1,6 @@ let project = new Project("plugins"); +project.add_cfiles("plugin_api.c"); project.add_cfiles("plugins.c"); if (flags.physics) { diff --git a/base/project.js b/base/project.js index 58be7b84..9797f15a 100644 --- a/base/project.js +++ b/base/project.js @@ -19,7 +19,7 @@ flags.with_eval = true; let project = new Project("Base"); let dir = flags.name.toLowerCase(); -{ +if (!flags.lite) { project.add_define("IDLE_SLEEP"); if (graphics === "vulkan") { @@ -50,85 +50,85 @@ let dir = flags.name.toLowerCase(); } project.add_define("WITH_PLUGINS"); - project.add_cfiles("sources/plugin_api.c"); project.add_project("../" + dir + "/plugins"); project.add_project("plugins"); -} -project.add_tsfiles("sources/ts"); -project.add_tsfiles("sources/ts/nodes"); -project.add_shaders("shaders/*.glsl"); -project.add_shaders("shaders/draw/*.glsl"); -project.add_assets("assets/*", { destination: "data/{name}" }); -project.add_assets("assets/locale/*", { destination: "data/locale/{name}" }); -project.add_assets("assets/licenses/**", { destination: "data/licenses/{name}" }); -project.add_assets("assets/plugins/*", { destination: "data/plugins/{name}" }); -project.add_assets("assets/themes/*.json", { destination: "data/themes/{name}" }); + project.add_tsfiles("sources/ts"); + project.add_tsfiles("sources/ts/iron"); + project.add_tsfiles("sources/ts/nodes"); + project.add_shaders("shaders/*.glsl"); + project.add_shaders("shaders/draw/*.glsl"); + project.add_assets("assets/*", { destination: "data/{name}" }); + project.add_assets("assets/locale/*", { destination: "data/locale/{name}" }); + project.add_assets("assets/licenses/**", { destination: "data/licenses/{name}" }); + project.add_assets("assets/plugins/*", { destination: "data/plugins/{name}" }); + project.add_assets("assets/themes/*.json", { destination: "data/themes/{name}" }); -if (platform === "linux" && fs_exists(os_cwd() + "/icon.png")) { - project.add_assets("../" + dir + "/icon.png", { destination: "{name}", noprocessing: true }); -} - -if (flags.embed) { - project.add_define("WITH_EMBED"); - project.add_define("arm_embed"); -} -else { - project.add_assets("assets/extra/*", { destination: "data/{name}" }); -} - -if (flags.physics) { - project.add_define("arm_physics"); -} - -// project.add_define("arm_skin"); -// project.add_define("arm_audio"); - -if (flags.android) { - project.add_define("arm_android_rmb"); -} - -if (flags.raytrace) { - project.add_assets("assets/raytrace/*", { destination: "data/{name}" }); - - if (flags.d3d12) { - project.add_assets("shaders/raytrace/*.cso", { destination: "data/{name}" }); + if (platform === "linux" && fs_exists(os_cwd() + "/icon.png")) { + project.add_assets("../" + dir + "/icon.png", { destination: "{name}", noprocessing: true }); } - else if (flags.vulkan) { - project.add_assets("shaders/raytrace/*.spirv", { destination: "data/{name}" }); - } - else if (flags.metal) { - project.add_assets("shaders/raytrace/*.metal", { destination: "data/{name}" }); - } -} -let export_version_info = true; -if (export_version_info) { - let dir = "../" + flags.name.toLowerCase() + "/build"; - let sha = os_popen(`git log --pretty=format:"%h" -n 1`).stdout.substr(1, 7); - let date = new Date().toISOString().split("T")[0]; - let data = `{ "sha": "${sha}", "date": "${date}" }`; - fs_ensuredir(dir); - fs_writefile(dir + "/version.json", data); - // Adds version.json to embed.txt list - project.add_assets(dir + "/version.json", { destination: "data/{name}" }); -} + if (flags.embed) { + project.add_define("WITH_EMBED"); + project.add_define("arm_embed"); + } + else { + project.add_assets("assets/extra/*", { destination: "data/{name}" }); + } -let export_data_list = flags.android; // .apk contents -if (export_data_list) { - let root = "../" + flags.name.toLowerCase(); - let data_list = { - "/data/plugins": fs_readdir("../base/assets/plugins").concat(fs_readdir(root + "/assets/plugins")).join(","), - "/data/export_presets": fs_readdir(root + "/assets/export_presets").join(","), - "/data/keymap_presets": fs_readdir(root + "/assets/keymap_presets").join(","), - "/data/locale": fs_readdir("../base/assets/locale").join(","), - "/data/meshes": fs_readdir(root + "/assets/meshes").join(","), - "/data/themes": fs_readdir("../base/assets/themes").join(","), - }; - let dir = "../" + flags.name.toLowerCase() + "/build"; - fs_ensuredir(dir); - fs_writefile(dir + "/data_list.json", JSON.stringify(data_list)); - project.add_assets(dir + "/data_list.json", { destination: "data/{name}" }); + if (flags.physics) { + project.add_define("arm_physics"); + } + + // project.add_define("arm_skin"); + // project.add_define("arm_audio"); + + if (flags.android) { + project.add_define("arm_android_rmb"); + } + + if (flags.raytrace) { + project.add_assets("assets/raytrace/*", { destination: "data/{name}" }); + + if (flags.d3d12) { + project.add_assets("shaders/raytrace/*.cso", { destination: "data/{name}" }); + } + else if (flags.vulkan) { + project.add_assets("shaders/raytrace/*.spirv", { destination: "data/{name}" }); + } + else if (flags.metal) { + project.add_assets("shaders/raytrace/*.metal", { destination: "data/{name}" }); + } + } + + let export_version_info = true; + if (export_version_info) { + let dir = "../" + flags.name.toLowerCase() + "/build"; + let sha = os_popen(`git log --pretty=format:"%h" -n 1`).stdout.substr(1, 7); + let date = new Date().toISOString().split("T")[0]; + let data = `{ "sha": "${sha}", "date": "${date}" }`; + fs_ensuredir(dir); + fs_writefile(dir + "/version.json", data); + // Adds version.json to embed.txt list + project.add_assets(dir + "/version.json", { destination: "data/{name}" }); + } + + let export_data_list = flags.android; // .apk contents + if (export_data_list) { + let root = "../" + flags.name.toLowerCase(); + let data_list = { + "/data/plugins": fs_readdir("../base/assets/plugins").concat(fs_readdir(root + "/assets/plugins")).join(","), + "/data/export_presets": fs_readdir(root + "/assets/export_presets").join(","), + "/data/keymap_presets": fs_readdir(root + "/assets/keymap_presets").join(","), + "/data/locale": fs_readdir("../base/assets/locale").join(","), + "/data/meshes": fs_readdir(root + "/assets/meshes").join(","), + "/data/themes": fs_readdir("../base/assets/themes").join(","), + }; + let dir = "../" + flags.name.toLowerCase() + "/build"; + fs_ensuredir(dir); + fs_writefile(dir + "/data_list.json", JSON.stringify(data_list)); + project.add_assets(dir + "/data_list.json", { destination: "data/{name}" }); + } } { diff --git a/base/sources/ts/anim.ts b/base/sources/ts/iron/anim.ts similarity index 100% rename from base/sources/ts/anim.ts rename to base/sources/ts/iron/anim.ts diff --git a/base/sources/ts/anim_bone.ts b/base/sources/ts/iron/anim_bone.ts similarity index 100% rename from base/sources/ts/anim_bone.ts rename to base/sources/ts/iron/anim_bone.ts diff --git a/base/sources/ts/anim_object.ts b/base/sources/ts/iron/anim_object.ts similarity index 100% rename from base/sources/ts/anim_object.ts rename to base/sources/ts/iron/anim_object.ts diff --git a/base/sources/ts/app.ts b/base/sources/ts/iron/app.ts similarity index 100% rename from base/sources/ts/app.ts rename to base/sources/ts/iron/app.ts diff --git a/base/sources/ts/armature.ts b/base/sources/ts/iron/armature.ts similarity index 100% rename from base/sources/ts/armature.ts rename to base/sources/ts/iron/armature.ts diff --git a/base/sources/ts/audio.ts b/base/sources/ts/iron/audio.ts similarity index 100% rename from base/sources/ts/audio.ts rename to base/sources/ts/iron/audio.ts diff --git a/base/sources/ts/camera_data.ts b/base/sources/ts/iron/camera_data.ts similarity index 100% rename from base/sources/ts/camera_data.ts rename to base/sources/ts/iron/camera_data.ts diff --git a/base/sources/ts/camera_object.ts b/base/sources/ts/iron/camera_object.ts similarity index 100% rename from base/sources/ts/camera_object.ts rename to base/sources/ts/iron/camera_object.ts diff --git a/base/sources/ts/const_data.ts b/base/sources/ts/iron/const_data.ts similarity index 100% rename from base/sources/ts/const_data.ts rename to base/sources/ts/iron/const_data.ts diff --git a/base/sources/ts/data.ts b/base/sources/ts/iron/data.ts similarity index 100% rename from base/sources/ts/data.ts rename to base/sources/ts/iron/data.ts diff --git a/base/sources/ts/g2.ts b/base/sources/ts/iron/g2.ts similarity index 100% rename from base/sources/ts/g2.ts rename to base/sources/ts/iron/g2.ts diff --git a/base/sources/ts/g4.ts b/base/sources/ts/iron/g4.ts similarity index 100% rename from base/sources/ts/g4.ts rename to base/sources/ts/iron/g4.ts diff --git a/base/sources/ts/input.ts b/base/sources/ts/iron/input.ts similarity index 100% rename from base/sources/ts/input.ts rename to base/sources/ts/iron/input.ts diff --git a/base/sources/ts/iron.ts b/base/sources/ts/iron/iron.ts similarity index 100% rename from base/sources/ts/iron.ts rename to base/sources/ts/iron/iron.ts diff --git a/base/sources/ts/lz4.ts b/base/sources/ts/iron/lz4.ts similarity index 100% rename from base/sources/ts/lz4.ts rename to base/sources/ts/iron/lz4.ts diff --git a/base/sources/ts/material_data.ts b/base/sources/ts/iron/material_data.ts similarity index 100% rename from base/sources/ts/material_data.ts rename to base/sources/ts/iron/material_data.ts diff --git a/base/sources/ts/mesh_data.ts b/base/sources/ts/iron/mesh_data.ts similarity index 100% rename from base/sources/ts/mesh_data.ts rename to base/sources/ts/iron/mesh_data.ts diff --git a/base/sources/ts/mesh_object.ts b/base/sources/ts/iron/mesh_object.ts similarity index 100% rename from base/sources/ts/mesh_object.ts rename to base/sources/ts/iron/mesh_object.ts diff --git a/base/sources/ts/object.ts b/base/sources/ts/iron/object.ts similarity index 100% rename from base/sources/ts/object.ts rename to base/sources/ts/iron/object.ts diff --git a/base/sources/ts/raycast.ts b/base/sources/ts/iron/raycast.ts similarity index 100% rename from base/sources/ts/raycast.ts rename to base/sources/ts/iron/raycast.ts diff --git a/base/sources/ts/render_path.ts b/base/sources/ts/iron/render_path.ts similarity index 100% rename from base/sources/ts/render_path.ts rename to base/sources/ts/iron/render_path.ts diff --git a/base/sources/ts/scene.ts b/base/sources/ts/iron/scene.ts similarity index 100% rename from base/sources/ts/scene.ts rename to base/sources/ts/iron/scene.ts diff --git a/base/sources/ts/shader_data.ts b/base/sources/ts/iron/shader_data.ts similarity index 100% rename from base/sources/ts/shader_data.ts rename to base/sources/ts/iron/shader_data.ts diff --git a/base/sources/ts/speaker_object.ts b/base/sources/ts/iron/speaker_object.ts similarity index 100% rename from base/sources/ts/speaker_object.ts rename to base/sources/ts/iron/speaker_object.ts diff --git a/base/sources/ts/sys.ts b/base/sources/ts/iron/sys.ts similarity index 100% rename from base/sources/ts/sys.ts rename to base/sources/ts/iron/sys.ts diff --git a/base/sources/ts/tilesheet.ts b/base/sources/ts/iron/tilesheet.ts similarity index 100% rename from base/sources/ts/tilesheet.ts rename to base/sources/ts/iron/tilesheet.ts diff --git a/base/sources/ts/time.ts b/base/sources/ts/iron/time.ts similarity index 100% rename from base/sources/ts/time.ts rename to base/sources/ts/iron/time.ts diff --git a/base/sources/ts/transform.ts b/base/sources/ts/iron/transform.ts similarity index 100% rename from base/sources/ts/transform.ts rename to base/sources/ts/iron/transform.ts diff --git a/base/sources/ts/tween.ts b/base/sources/ts/iron/tween.ts similarity index 100% rename from base/sources/ts/tween.ts rename to base/sources/ts/iron/tween.ts diff --git a/base/sources/ts/ui.ts b/base/sources/ts/iron/ui.ts similarity index 100% rename from base/sources/ts/ui.ts rename to base/sources/ts/iron/ui.ts diff --git a/base/sources/ts/uniforms.ts b/base/sources/ts/iron/uniforms.ts similarity index 100% rename from base/sources/ts/uniforms.ts rename to base/sources/ts/iron/uniforms.ts diff --git a/base/sources/ts/world_data.ts b/base/sources/ts/iron/world_data.ts similarity index 100% rename from base/sources/ts/world_data.ts rename to base/sources/ts/iron/world_data.ts diff --git a/base/tools/make.js b/base/tools/make.js index 3be669b1..2c739295 100644 --- a/base/tools/make.js +++ b/base/tools/make.js @@ -3151,6 +3151,9 @@ class Project { add_project(directory) { let from = path_isabs(directory) ? directory : path_join(this.basedir, directory); + if (!fs_exists(from)) { + return; + } let project = load_project(from, false); this.subProjects.push(project); this.asset_matchers = this.asset_matchers.concat(project.asset_matchers); diff --git a/base/tools/pad/project.js b/base/tools/pad/project.js index f2e43b0b..b6ce6339 100644 --- a/base/tools/pad/project.js +++ b/base/tools/pad/project.js @@ -4,18 +4,20 @@ flags.name = "ArmorPad"; flags.package = "org.armorpad"; flags.with_nfd = true; flags.with_iron = true; +flags.lite = true; let project = new Project("ArmorPad"); project.add_tsfiles("sources"); -let root = "../../../"; -project.add_shaders(root + "base/shaders/draw/*.glsl",); -project.add_assets(root + "base/assets/font_mono.ttf", { destination: "data/{name}" }); -project.add_assets(root + "base/assets/text_coloring.json", { destination: "data/{name}" }); -project.add_tsfiles(root + "base/sources/file.ts"); -project.add_tsfiles(root + "base/sources/path.ts"); +project.add_shaders("../../shaders/draw/*.glsl",); +project.add_assets("../../assets/font_mono.ttf", { destination: "data/{name}" }); +project.add_assets("../../assets/text_coloring.json", { destination: "data/{name}" }); +project.add_tsfiles("../../sources/ts/iron"); +project.add_tsfiles("../../sources/ts/file.ts"); +project.add_tsfiles("../../sources/ts/path.ts"); project.add_define("IDLE_SLEEP"); -project.add_project(root + "base"); +project.add_project("../.."); +project.flatten(); return project; diff --git a/base/tools/pad/sources/main.ts b/base/tools/pad/sources/main.ts index 6f868e11..608b988a 100644 --- a/base/tools/pad/sources/main.ts +++ b/base/tools/pad/sources/main.ts @@ -382,3 +382,4 @@ type config_t = { server: string; }; let config_raw: config_t; function strings_check_internet_connection(): string { return ""; }; function console_error(s: string) { }; +function plugin_embed() { }