xmake.lua 1.1 KB

1234567891011121314151617181920212223242526272829
  1. package("minja")
  2. set_kind("library", {headeronly = true})
  3. set_homepage("https://github.com/google/minja")
  4. set_description("A minimalistic C++ Jinja templating engine for LLM chat templates")
  5. set_license("MIT")
  6. add_urls("https://github.com/google/minja.git")
  7. add_versions("2025.01.31", "76f0d01779aa00b0c68f2117f6cb2c9afc3a0ca8")
  8. add_deps("nlohmann_json")
  9. on_install(function (package)
  10. io.replace("include/minja/minja.hpp", "#include <json.hpp>", "#include <nlohmann/json.hpp>", {plain = true})
  11. os.cp("include", package:installdir())
  12. end)
  13. on_test(function (package)
  14. assert(package:check_cxxsnippets({test = [[
  15. using json = nlohmann::ordered_json;
  16. void test() {
  17. auto tmpl = minja::Parser::parse("Hello, {{ location }}!", /* options= */ {});
  18. auto context = minja::Context::make(minja::Value(json {
  19. {"location", "World"},
  20. }));
  21. auto result = tmpl->render(context);
  22. }
  23. ]]}, {configs = {languages = "c++17"}, includes = "minja/minja.hpp"}))
  24. end)