xmake.lua 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package("xxmlxx")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/luckydu-henry/xxmlxx")
  4. set_description("A very lightweight and efficient modern C++ xml library")
  5. set_license("MIT")
  6. add_urls("https://github.com/luckydu-henry/xxmlxx.git")
  7. add_versions("2025.09.30", "8439462a3eb59d4f3f2b83f4ddeb724e9e2bbd18")
  8. add_versions("2025.09.14", "8e290102820b75aacc60d5419ff955aea52d6514")
  9. if on_check then
  10. on_check(function (package)
  11. assert(package:check_cxxsnippets({test = [[
  12. #include <vector>
  13. #include <format>
  14. #include <ranges>
  15. void test() {
  16. std::vector nums{1, 2, 3};
  17. auto fmt_nums = nums | std::views::transform([](int x) {
  18. return std::format("{:02d}", x);
  19. });
  20. }
  21. ]]}, {configs = {languages = "c++20"}}), "package(xxmlxx) Require at least C++20.")
  22. end)
  23. end
  24. on_install(function(package)
  25. os.cp("xxmlxx.hpp", package:installdir("include"))
  26. end)
  27. on_test(function(package)
  28. assert(package:check_cxxsnippets({test = [[
  29. void test() {
  30. xxmlxx::document_parser parser(R"(
  31. <?xml version="1.0" encoding="utf-8"?>
  32. <XMLRoot>
  33. <Data one="1.0"/>
  34. <HelloMessage>Hello world!</HelloMessage>
  35. </XMLRoot>
  36. )");
  37. }
  38. ]]}, {configs = {languages = "c++20"}, includes = "xxmlxx.hpp"}))
  39. end)