xmake.lua 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package("yas")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/niXman/yas")
  4. set_description("Yet Another Serialization")
  5. add_urls("https://github.com/niXman/yas.git")
  6. add_versions("2025.02.19", "1b37941f2196f4f59a37d34f1cd6dd3c6d2a2436")
  7. add_versions("2023.09.13", "7c5ced1d940ddc6826cf537468e65ea1f592bfe4")
  8. on_install(function (package)
  9. io.replace("include/yas/detail/config/endian.hpp",
  10. "|| defined(__ARM_ARCH_7S__)",
  11. "|| defined(__ARM_ARCH_7S__) || defined(_M_ARM64)", {plain = true})
  12. os.cp("include", package:installdir())
  13. end)
  14. on_test(function (package)
  15. assert(package:check_cxxsnippets({test = [[
  16. #include <yas/serialize.hpp>
  17. #include <yas/std_types.hpp>
  18. void test() {
  19. int a = 3, aa{};
  20. short b = 4, bb{};
  21. float c = 3.14, cc{};
  22. constexpr std::size_t flags =
  23. yas::mem // IO type
  24. |yas::json; // IO format
  25. auto buf = yas::save<flags>(
  26. YAS_OBJECT("myobject", a, b, c)
  27. );
  28. yas::load<flags>(buf,
  29. YAS_OBJECT_NVP("myobject"
  30. ,("a", aa)
  31. ,("b", bb)
  32. ,("c", cc)
  33. )
  34. );
  35. }
  36. ]]}, {configs = {languages = "c++14"}}))
  37. end)