xmake.lua 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package("tinyexpr")
  2. set_homepage("https://codeplea.com/tinyexpr")
  3. set_description("TinyExpr is a very small parser and evaluation library for evaluating math expressions from C.")
  4. set_license("zlib")
  5. add_urls("https://github.com/codeplea/tinyexpr.git")
  6. add_versions("2022.11.21", "74804b8c5d296aad0866bbde6c27e2bc1d85e5f2")
  7. add_configs("pow_from_right", { description = "Use right-to-left exponentiation.", default = false, type = "boolean" })
  8. add_configs("natural_log", { description = "Let `log` default to the natural log instead of `log10`.", default = false, type = "boolean" })
  9. on_install(function (package)
  10. io.writefile("xmake.lua", [[
  11. add_rules("mode.debug", "mode.release")
  12. option("pow_from_right", { showmenu = true, default = false })
  13. option("natural_log", { showmenu = true, default = false })
  14. target("tinyexpr")
  15. set_kind("static")
  16. add_files("tinyexpr.c")
  17. add_headerfiles("tinyexpr.h")
  18. if has_config("pow_from_right") then
  19. add_defines("TE_POW_FROM_RIGHT")
  20. end
  21. if has_config("natural_log") then
  22. add_defines("TE_NAT_LOG")
  23. end
  24. ]])
  25. local configs = {
  26. pow_from_right = package:config("pow_from_right"),
  27. natural_log = package:config("natural_log"),
  28. }
  29. import("package.tools.xmake").install(package, configs)
  30. end)
  31. on_test(function (package)
  32. assert(package:has_cfuncs("te_interp", {includes = "tinyexpr.h"}))
  33. end)