From ab2819a365f0953c418b46269aa78ed72ec7ac37 Mon Sep 17 00:00:00 2001 From: iDunk5400 Date: Sat, 7 Sep 2019 22:02:11 +0200 Subject: [PATCH] depends: attempt to fix readline Make readline actually compile, and make ncurses use existing terminfo data (if available). --- CMakeLists.txt | 10 +++++++++- contrib/depends/packages/ncurses.mk | 8 +++++--- contrib/depends/packages/readline.mk | 5 ++++- contrib/depends/toolchain.cmake.in | 3 ++- contrib/epee/src/CMakeLists.txt | 4 ++-- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 60fcf130e..60a44944f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -955,7 +955,7 @@ if (HIDAPI_FOUND OR LibUSB_COMPILE_TEST_PASSED) endif() option(USE_READLINE "Build with GNU readline support." ON) -if(USE_READLINE) +if(USE_READLINE AND NOT DEPENDS) find_package(Readline) if(READLINE_FOUND AND GNU_READLINE_FOUND) add_definitions(-DHAVE_READLINE) @@ -965,6 +965,14 @@ if(USE_READLINE) else() message(STATUS "Could not find GNU readline library so building without readline support") endif() +elseif(USE_READLINE AND DEPENDS AND NOT MINGW) + find_path(Readline_INCLUDE_PATH readline/readline.h) + find_library(Readline_LIBRARY readline) + find_library(Terminfo_LIBRARY tinfo) + set(Readline_LIBRARY "${Readline_LIBRARY};${Terminfo_LIBRARY}") + set(GNU_READLINE_LIBRARY ${Readline_LIBRARY}) + add_definitions(-DHAVE_READLINE) + set(EPEE_READLINE epee_readline) endif() if(ANDROID) diff --git a/contrib/depends/packages/ncurses.mk b/contrib/depends/packages/ncurses.mk index 4e06c00d9..c3b16baab 100644 --- a/contrib/depends/packages/ncurses.mk +++ b/contrib/depends/packages/ncurses.mk @@ -21,6 +21,7 @@ define $(package)_set_vars $(package)_config_opts+=--without-tests $(package)_config_opts+=--without-tack $(package)_config_opts+=--without-manpages + $(package)_config_opts+=--with-termlib=tinfo $(package)_config_opts+=--disable-tic-depends $(package)_config_opts+=--disable-big-strings $(package)_config_opts+=--disable-ext-colors @@ -30,15 +31,16 @@ define $(package)_set_vars $(pacakge)_config_opts+=--without-pthread $(pacakge)_config_opts+=--disable-rpath $(pacakge)_config_opts+=--disable-colorfgbg - $(pacakge)_config_opts+=--disable-ext-colors $(pacakge)_config_opts+=--disable-ext-mouse $(pacakge)_config_opts+=--disable-symlinks $(pacakge)_config_opts+=--enable-warnings $(pacakge)_config_opts+=--enable-assertions $(pacakge)_config_opts+=--disable-home-terminfo + $(package)_config_opts+=--with-default-terminfo-dir=/etc/terminfo + $(package)_config_opts+=--with-terminfo-dirs="/etc/terminfo:/lib/terminfo:/usr/share/terminfo" $(pacakge)_config_opts+=--enable-database $(pacakge)_config_opts+=--enable-sp-funcs - $(pacakge)_config_opts+=--enable-term-driver + $(pacakge)_config_opts+=--disable-term-driver $(pacakge)_config_opts+=--enable-interop $(pacakge)_config_opts+=--enable-widec $(package)_build_opts=CFLAGS="$($(package)_cflags) $($(package)_cppflags) -fPIC" @@ -53,6 +55,6 @@ define $(package)_build_cmds endef define $(package)_stage_cmds - $(MAKE) install DESTDIR=$($(package)_staging_dir) + $(MAKE) install.libs DESTDIR=$($(package)_staging_dir) endef diff --git a/contrib/depends/packages/readline.mk b/contrib/depends/packages/readline.mk index 0e2100749..8f234ab6a 100644 --- a/contrib/depends/packages/readline.mk +++ b/contrib/depends/packages/readline.mk @@ -6,7 +6,10 @@ $(package)_sha256_hash=e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078 $(package)_dependencies=ncurses define $(package)_set_vars - $(package)_config_opts=--prefix=$(host_prefix) + $(package)_build_opts=CC="$($(package)_cc)" + $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" + $(package)_config_env_darwin=RANLIB="$(host_prefix)/native/bin/x86_64-apple-darwin11-ranlib" AR="$(host_prefix)/native/bin/x86_64-apple-darwin11-ar" CC="$(host_prefix)/native/bin/$($(package)_cc)" + $(package)_config_opts+=--prefix=$(host_prefix) $(package)_config_opts+=--exec-prefix=$(host_prefix) $(package)_config_opts+=--host=$(HOST) $(package)_config_opts+=--disable-shared --with-curses diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in index b748f5c55..d52002d1b 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -22,7 +22,8 @@ SET(LRELEASE_PATH @prefix@/native/bin CACHE FILEPATH "path to lrelease" FORCE) SET(Readline_ROOT_DIR @prefix@) SET(Readline_INCLUDE_DIR @prefix@/include) -SET(Termcap_LIBRARY @prefix@/lib/libncurses.a) +SET(Readline_LIBRARY @prefix@/lib/libreadline.a) +SET(Termcap_LIBRARY @prefix@/lib/libtinfo.a) SET(LIBUNWIND_INCLUDE_DIR @prefix@/include) SET(LIBUNWIND_LIBRARIES @prefix@/lib/libunwind.a) diff --git a/contrib/epee/src/CMakeLists.txt b/contrib/epee/src/CMakeLists.txt index c512e3b86..5c92e32bd 100644 --- a/contrib/epee/src/CMakeLists.txt +++ b/contrib/epee/src/CMakeLists.txt @@ -29,7 +29,7 @@ add_library(epee STATIC byte_slice.cpp hex.cpp http_auth.cpp mlog.cpp net_helper.cpp net_utils_base.cpp string_tools.cpp wipeable_string.cpp levin_base.cpp memwipe.c connection_basic.cpp network_throttle.cpp network_throttle-detail.cpp mlocker.cpp buffer.cpp net_ssl.cpp) -if (USE_READLINE AND GNU_READLINE_FOUND) +if (USE_READLINE AND (GNU_READLINE_FOUND OR DEPENDS AND NOT MINGW)) add_library(epee_readline STATIC readline_buffer.cpp) endif() @@ -62,7 +62,7 @@ target_link_libraries(epee ${OPENSSL_LIBRARIES} ${EXTRA_LIBRARIES}) -if (USE_READLINE AND GNU_READLINE_FOUND) +if (USE_READLINE AND (GNU_READLINE_FOUND OR DEPENDS AND NOT MINGW)) target_link_libraries(epee_readline PUBLIC easylogging