xmake.lua 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package("libedit")
  2. set_homepage("http://thrysoee.dk/editline")
  3. set_description("Autotool- and libtoolized port of the NetBSD Editline library (libedit).")
  4. set_license("BSD-3-Clause")
  5. add_urls("https://thrysoee.dk/editline/libedit-20240808-$(version).tar.gz")
  6. add_versions("3.1", "5f0573349d77c4a48967191cdd6634dd7aa5f6398c6a57fe037cc02696d6099f")
  7. add_configs("terminal_db", {description = "Select terminal library", default = "ncurses", type = "string", values = {"termcap", "ncurses", "tinfo"}})
  8. if is_plat("linux") then
  9. add_extsources("apt::libedit-dev")
  10. end
  11. add_includedirs("include", "include/editline")
  12. on_load(function (package)
  13. local terminal = package:config("terminal_db")
  14. if terminal == "termcap" then
  15. package:add("deps", "termcap")
  16. elseif terminal == "ncurses" then
  17. package:add("deps", "ncurses")
  18. if package:is_plat("mingw") then
  19. raise("Unsupported ncurses on mingw, need package libsystre first")
  20. end
  21. else
  22. raise("Unsupported tinfo now!")
  23. end
  24. end)
  25. on_install("linux", "macosx", "bsd", "msys", function (package)
  26. local configs = {"--disable-examples"}
  27. table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
  28. table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
  29. local terminal_db = package:config("terminal_db")
  30. if terminal_db == "ncurses" then
  31. local widec = package:dep("ncurses"):config("widec")
  32. if widec then
  33. -- hack
  34. io.replace("configure", "-lncurses", "-lncursesw", {plain = true})
  35. end
  36. end
  37. import("package.tools.autoconf").install(package, configs, {packagedeps = terminal_db})
  38. end)
  39. on_test(function (package)
  40. assert(package:has_cfuncs("el_init", {includes = "histedit.h"}))
  41. end)