xmake.lua 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package("emio")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://viatorus.github.io/emio/")
  4. set_description("A safe and fast high-level and low-level character input/output library for bare-metal and RTOS based embedded systems with a very small binary footprint.")
  5. add_urls("https://github.com/viatorus/emio/archive/refs/tags/$(version).tar.gz",
  6. "https://github.com/viatorus/emio.git")
  7. add_versions("0.9.0", "63b1eca2ac9a66d443352717302305998300f259216b20f686c02db594b1d87b")
  8. add_versions("0.8.0", "86436eeb16cac7c7c74a7c1af9fe7bbbc1aa18d3d96e7bba9791c15ebe9ebdc7")
  9. add_versions("0.7.0", "1ef5304964eee109c13477f2d84822ee474612475049a377b59e33a5fe05d7eb")
  10. add_versions("0.4.0", "847198a37fbf9dcc00ac85fbc64b283e41a018f53c39363129a4bdb9939338a6")
  11. add_deps("cmake")
  12. add_includedirs("include/emio")
  13. if on_check then
  14. on_check(function (package)
  15. assert(package:check_cxxsnippets({test = [[
  16. #include <bit>
  17. void test() {
  18. for (unsigned x{0}; x != 8; ++x) {
  19. auto y = std::bit_width(x);
  20. }
  21. }
  22. ]]}, {configs = {languages = "c++20"}}), "package(emio) Require at least C++20.")
  23. end)
  24. end
  25. on_install("!windows", function (package)
  26. import("package.tools.cmake").install(package)
  27. end)
  28. on_test(function (package)
  29. assert(package:check_cxxsnippets({test = [[
  30. #include <emio/format.hpp>
  31. void test() {
  32. emio::format("{0}", 42);
  33. }
  34. ]]}, {configs = {languages = "c++20"}}))
  35. end)