From 7977fb976bbe70e72ff0d77165b5a35d50f16166 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Tue, 29 Jul 2025 21:13:10 +0200 Subject: [PATCH] nsis packaging --- flatpak/org.zulianc.jminos.ico | Bin 0 -> 14033 bytes src/GraphicalUI/main.cpp | 4 +++- src/Utils/AssetManager.cpp | 15 +++++++++++++-- src/Utils/AssetManager.h | 5 +++++ xmake.lua | 3 ++- xpack.lua => xmake/xpack.lua | 15 +++++++++------ 6 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 flatpak/org.zulianc.jminos.ico rename xpack.lua => xmake/xpack.lua (64%) diff --git a/flatpak/org.zulianc.jminos.ico b/flatpak/org.zulianc.jminos.ico new file mode 100644 index 0000000000000000000000000000000000000000..52079c1de3cd17e7eae506792b96b9e4b6d01e7c GIT binary patch literal 14033 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

XrV3Y;UOdYx-_9f>TyzqfxWc8#g5A;L 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 E5BA9DCIA2c literal 0 HcmV?d00001 diff --git a/src/GraphicalUI/main.cpp b/src/GraphicalUI/main.cpp index e04d72d..62eea41 100644 --- a/src/GraphicalUI/main.cpp +++ b/src/GraphicalUI/main.cpp @@ -10,11 +10,13 @@ [[nodiscard]] bool resetKeybindFile(int layout); -int main() { +int main(int arc, char** args) { std::srand(std::time(NULL)); bool everythingIsOK = true; + AssetManager::setExePath(args[0]); + // CHECK PIECES FILES PiecesFiles pf; diff --git a/src/Utils/AssetManager.cpp b/src/Utils/AssetManager.cpp index 0b12e94..f42da11 100644 --- a/src/Utils/AssetManager.cpp +++ b/src/Utils/AssetManager.cpp @@ -2,9 +2,20 @@ namespace fs = std::filesystem; -static std::string getEnv(const std::string& var) { +static fs::path EXE_DIRECTORY; + +void AssetManager::setExePath(const std::string& arg0) { + EXE_DIRECTORY = fs::path(arg0).parent_path(); +} + +static fs::path getEnv(const std::string& var) { char* env = std::getenv(var.c_str()); - return env ? env : ""; + return env ? env : +#ifdef JMINOS_IGNORE_WORKDIR + EXE_DIRECTORY.parent_path(); +#else + ""; +#endif } fs::path AssetManager::getResourcePath(const std::string& resource) { diff --git a/src/Utils/AssetManager.h b/src/Utils/AssetManager.h index ab36e94..8e8bdfc 100644 --- a/src/Utils/AssetManager.h +++ b/src/Utils/AssetManager.h @@ -15,4 +15,9 @@ class AssetManager { * @brief Used to save things */ static std::filesystem::path getConfigPath(const std::string& resource); + + /** + * @brief Set the current path of the executable + */ + static void setExePath(const std::string& arg0); }; \ No newline at end of file diff --git a/xmake.lua b/xmake.lua index a053819..3d4c59a 100644 --- a/xmake.lua +++ b/xmake.lua @@ -11,6 +11,7 @@ option_end() if has_config("external_build") then add_requires("sfml 3.0.0", "zlib", {system = false}) + add_defines("JMINOS_IGNORE_WORKDIR") else add_requires("sfml 3.0.0", "zlib") end @@ -52,7 +53,7 @@ if is_plat("mingw") then add_ldflags("-static-libstdc++", "-static") end -includes("./xpack.lua") +includes("xmake/xpack.lua") -- -- If you want to known more usage about xmake, please see https://xmake.io diff --git a/xpack.lua b/xmake/xpack.lua similarity index 64% rename from xpack.lua rename to xmake/xpack.lua index c000afc..8c654d5 100644 --- a/xpack.lua +++ b/xmake/xpack.lua @@ -10,24 +10,27 @@ xpack("jminos") set_company("org.zulianc") on_package(function (package) os.cd("flatpak") - os.exec("flatpak-builder --force-clean --user --install-deps-from=flathub --repo=repo --install builddir org.zulianc.jminos.yml") + os.exec("flatpak install org.flatpak.Builder --user -y") + os.exec("flatpak run org.flatpak.Builder --force-clean --user --install-deps-from=flathub --repo=repo --install builddir org.zulianc.jminos.yml") os.exec("flatpak build-bundle repo jminos.flatpak org.zulianc.jminos --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo") os.mv("jminos.flatpak", package:outputdir()) end) + on_load(function (package) + package:set("basename", package:name() .. "-v" .. package:version() .. "-" .. package:arch()) + end) else xpack("jminos") - set_formats("zip") + set_formats("zip", "nsis") add_targets("graph") add_installfiles("(data/**.png)") - on_load(function (package) + set_iconfile("flatpak/org.zulianc.jminos.ico") + on_load(function (package) package:set("basename", package:name() .. "-v" .. package:version() .. "-" .. package:arch()) end) after_installcmd(function (package, batchcmds) - batchcmds:mv(path.join(package:installdir("bin"), "*"), package:installdir()) - batchcmds:rm(package:installdir("bin")) batchcmds:rm(package:installdir("**/.gitkeep")) end) -end \ No newline at end of file +end