From 95b07b207ee0a8a5348b9505cdec9eb641b9f5fe Mon Sep 17 00:00:00 2001 From: star9029 Date: Fri, 24 May 2024 22:23:40 +0800 Subject: [PATCH] yas: add package (#4140) * yas: add package * patch arm --- packages/y/yas/xmake.lua | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 packages/y/yas/xmake.lua diff --git a/packages/y/yas/xmake.lua b/packages/y/yas/xmake.lua new file mode 100644 index 000000000..9f6f5a60a --- /dev/null +++ b/packages/y/yas/xmake.lua @@ -0,0 +1,39 @@ +package("yas") + set_kind("library", {headeronly = true}) + set_homepage("https://github.com/niXman/yas") + set_description("Yet Another Serialization") + + add_urls("https://github.com/niXman/yas.git") + add_versions("2023.09.13", "7c5ced1d940ddc6826cf537468e65ea1f592bfe4") + + on_install(function (package) + io.replace("include/yas/detail/config/endian.hpp", + "|| defined(__ARM_ARCH_7S__)", + "|| defined(__ARM_ARCH_7S__) || defined(_M_ARM64)", {plain = true}) + os.cp("include", package:installdir()) + end) + + on_test(function (package) + assert(package:check_cxxsnippets({test = [[ + #include + #include + void test() { + int a = 3, aa{}; + short b = 4, bb{}; + float c = 3.14, cc{}; + constexpr std::size_t flags = + yas::mem // IO type + |yas::json; // IO format + auto buf = yas::save( + YAS_OBJECT("myobject", a, b, c) + ); + yas::load(buf, + YAS_OBJECT_NVP("myobject" + ,("a", aa) + ,("b", bb) + ,("c", cc) + ) + ); + } + ]]}, {configs = {languages = "c++14"}})) + end)