package("emio") set_kind("library", {headeronly = true}) set_homepage("https://viatorus.github.io/emio/") 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.") add_urls("https://github.com/viatorus/emio/archive/refs/tags/$(version).tar.gz", "https://github.com/viatorus/emio.git") add_versions("0.8.0", "86436eeb16cac7c7c74a7c1af9fe7bbbc1aa18d3d96e7bba9791c15ebe9ebdc7") add_versions("0.7.0", "1ef5304964eee109c13477f2d84822ee474612475049a377b59e33a5fe05d7eb") add_versions("0.4.0", "847198a37fbf9dcc00ac85fbc64b283e41a018f53c39363129a4bdb9939338a6") add_deps("cmake") add_includedirs("include/emio") if on_check then on_check(function (package) assert(package:check_cxxsnippets({test = [[ #include void test() { for (unsigned x{0}; x != 8; ++x) { auto y = std::bit_width(x); } } ]]}, {configs = {languages = "c++20"}}), "package(emio) Require at least C++20.") end) end on_install("!windows", function (package) import("package.tools.cmake").install(package) end) on_test(function (package) assert(package:check_cxxsnippets({test = [[ #include void test() { emio::format("{0}", 42); } ]]}, {configs = {languages = "c++20"}})) end)