123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package("readline")
- set_homepage("https://tiswww.case.edu/php/chet/readline/rltop.html")
- set_description("Library for command-line editing")
- set_license("GPL-3.0-or-later")
- add_urls("https://ftpmirror.gnu.org/readline/readline-$(version).tar.gz",
- "https://ftp.gnu.org/gnu/readline/readline-$(version).tar.gz")
- add_versions("8.2.13", "0e5be4d2937e8bd9b7cd60d46721ce79f88a33415dd68c2d738fb5924638f656")
- add_versions("8.2", "3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35")
- add_versions("8.1", "f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02")
- if is_plat("mingw", "cygwin", "msys") then
- add_patches("8.2.13", "patches/8.2.13/mingw_fd_set.patch", "3b5576e51471b248f5c89e0d4c01ac0bc443a239169fa19e25980f9a923f659a")
- end
- add_deps("ncurses")
- on_install("!wasm and !iphoneos and @!windows", function (package)
- local configs = {"--with-curses", "--disable-install-examples"}
- table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
- table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
- io.replace("support/shobj-conf", "-Wl,-rpath,$(libdir)", "", {plain = true}) -- Remove RPATH from shared objects (FS#14366)
- local makefile_inputs = {"Makefile.in", "shlib/Makefile.in"}
- local SHLIB_LIBS = package:dep("ncurses"):config("widec") and "-lncursesw" or "-lncurses"
- for _, makefile_input in ipairs(makefile_inputs) do
- io.replace(makefile_input, "@SHLIB_LIBS@", SHLIB_LIBS, {plain = true})
- end
- if is_host("windows") then
- -- Avoid issues with /c/dir style paths
- for _, makefile_input in ipairs(makefile_inputs) do
- io.replace(makefile_input, "@BUILD_DIR@", path.unix(os.curdir()), {plain = true}) -- C:/dir
- end
- end
- local cflags = {}
- if package:version():le("8.2.13") then
- table.insert(cflags, "-std=c17")
- end
- if package:is_plat("mingw", "cygwin", "msys") then
- table.insert(cflags, "-DNEED_EXTERN_PC=1") -- Use extern PC variable from ncurses
- table.join2(cflags, {"-D__USE_MINGW_ALARM", "-D_POSIX"}) -- Make mingw-w64 provide a dummy alarm() function
- io.replace("support/shobj-conf", "--export-all", "--export-all-symbols", {plain = true})
- end
- import("package.tools.autoconf").install(package, configs, {cflags = cflags, packagedeps = {"ncurses"}})
- end)
- on_test(function (package)
- assert(package:has_cfuncs("readline", {includes = {"stdio.h", "readline/readline.h"}}))
- end)
|