From 2565edced7ba8cb9f1120b40ce5d7954842e06c0 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Sat, 22 Feb 2025 22:55:07 +0100 Subject: [PATCH] add splib (unfinished) --- packages/s/splib/xmake.lua | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 packages/s/splib/xmake.lua diff --git a/packages/s/splib/xmake.lua b/packages/s/splib/xmake.lua new file mode 100644 index 0000000..cd94f54 --- /dev/null +++ b/packages/s/splib/xmake.lua @@ -0,0 +1,60 @@ +package("splib") + set_description("The splib package") + + add_urls("https://git.ale-pri.com/Persson-dev/Simple-Protocol-Lib.git") + add_versions("v1.0.0", "...") + + add_configs("shared", {description = "Build shared library.", default = false, type = "boolean"}) + + on_load(function (package) + package:set("installdir", path.join(os.scriptdir(), package:plat(), package:arch(), package:mode())) + end) + + on_test(function (package) + assert(package:check_cxxsnippets({test = [[ + #include + #include + #include + + enum PacketId { + KeepAlive = 0, + }; + + + enum class KeepAliveFieldsE { + KeepAliveId = 0, + }; + + using KeepAliveFields = std::tuple< + std::uint64_t //<- KeepAliveId + >; + + DeclarePacket(KeepAlive){ + public: + PacketConstructor(KeepAlive) + + std::uint64_t GetKeepAliveId() const { + return GetField(); + } + }; + + using AllPackets = std::tuple; + + #include + #include + ]]}, {configs = {languages = "c++17"}})) + end) + + on_install(function (package) + import("package.tools.xmake").install(package) + end) + + on_fetch(function (package) + local result = {} + local libfiledir = (package:config("shared") and package:is_plat("windows", "mingw")) and "bin" or "lib" + result.links = "SimpleProtocolLib" + result.linkdirs = package:installdir("lib") + result.includedirs = package:installdir("include") + result.libfiles = path.join(package:installdir(libfiledir), "libSimpleProtocolLib.so") + return result + end)