xmake.lua 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package("ncurses")
  2. set_homepage("https://invisible-island.net/ncurses/")
  3. set_description("A free software emulation of curses.")
  4. set_license("MIT")
  5. add_urls("https://ftpmirror.gnu.org/ncurses/ncurses-$(version).tar.gz",
  6. "https://ftp.gnu.org/pub/gnu/ncurses/ncurses-$(version).tar.gz",
  7. "https://invisible-mirror.net/archives/ncurses/ncurses-$(version).tar.gz")
  8. add_versions("6.1", "aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17")
  9. add_versions("6.2", "30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d")
  10. add_versions("6.3", "97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059")
  11. add_versions("6.4", "6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159")
  12. add_versions("6.5", "136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6")
  13. add_configs("widec", {description = "Compile with wide-char/UTF-8 code.", default = true, type = "boolean"})
  14. if is_plat("linux") then
  15. add_extsources("apt::libncurses-dev")
  16. end
  17. on_load(function (package)
  18. if package:config("widec") then
  19. package:add("links", "ncursesw", "formw", "panelw", "menuw")
  20. package:add("includedirs", "include/ncursesw", "include")
  21. else
  22. package:add("links", "ncurses", "form", "panel", "menu")
  23. package:add("includedirs", "include/ncurses", "include")
  24. end
  25. if not package:config("shared") then
  26. package:add("defines", "NCURSES_STATIC")
  27. end
  28. end)
  29. on_install("linux", "macosx", "bsd", "msys", function (package)
  30. local configs = {
  31. "--without-manpages",
  32. "--enable-sigwinch",
  33. "--with-gpm=no",
  34. "--without-tests",
  35. "--without-ada",
  36. }
  37. table.insert(configs, "--with-debug=" .. (package:is_debug() and "yes" or "no"))
  38. table.insert(configs, "--with-shared=" .. (package:config("shared") and "yes" or "no"))
  39. table.insert(configs, "--enable-widec=" .. (package:config("widec") and "yes" or "no"))
  40. import("package.tools.autoconf").install(package, configs, {arflags = {"-curvU"}})
  41. end)
  42. on_test(function (package)
  43. assert(package:has_cfuncs("initscr", {includes = "curses.h"}))
  44. end)