diff options
-rw-r--r-- | cmake/readline.cmake | 14 | ||||
-rw-r--r-- | cmd-line-utils/libedit/CMakeLists.txt | 2 |
2 files changed, 14 insertions, 2 deletions
diff --git a/cmake/readline.cmake b/cmake/readline.cmake index 44be0c2196e..4f0cb4a30c7 100644 --- a/cmake/readline.cmake +++ b/cmake/readline.cmake @@ -79,7 +79,7 @@ MACRO (MYSQL_CHECK_MULTIBYTE) ENDMACRO() MACRO (FIND_CURSES) - INCLUDE (FindCurses) + FIND_PACKAGE(Curses) MARK_AS_ADVANCED(CURSES_CURSES_H_PATH CURSES_FORM_LIBRARY CURSES_HAVE_CURSES_H) IF(NOT CURSES_FOUND) SET(ERRORMSG "Curses library not found. Please install appropriate package, @@ -104,6 +104,18 @@ MACRO (FIND_CURSES) SET(CURSES_LIBRARY "curses" CACHE INTERNAL "" FORCE) SET(CURSES_CURSES_LIBRARY "curses" CACHE INTERNAL "" FORCE) ENDIF() + + IF(CMAKE_SYSTEM_NAME MATCHES "Linux") + # -Wl,--as-needed breaks linking with -lcurses, e.g on Fedora + # Lower-level libcurses calls are exposed by libtinfo + CHECK_LIBRARY_EXISTS(${CURSES_LIBRARY} tputs "" HAVE_TPUTS_IN_CURSES) + IF(NOT HAVE_TPUTS_IN_CURSES) + CHECK_LIBRARY_EXISTS(tinfo tputs "" HAVE_TPUTS_IN_TINFO) + IF(HAVE_TPUTS_IN_TINFO) + SET(CURSES_LIBRARY tinfo) + ENDIF() + ENDIF() + ENDIF() ENDMACRO() MACRO (MYSQL_USE_BUNDLED_READLINE) diff --git a/cmd-line-utils/libedit/CMakeLists.txt b/cmd-line-utils/libedit/CMakeLists.txt index 763da8a4e04..517cbb4211f 100644 --- a/cmd-line-utils/libedit/CMakeLists.txt +++ b/cmd-line-utils/libedit/CMakeLists.txt @@ -18,7 +18,7 @@ INCLUDE(CheckIncludeFile) include(CheckFunctionExists) CHECK_INCLUDE_FILES(term.h HAVE_TERM_H) -SET(CMAKE_REQUIRED_LIBRARIES ${CURSES_CURSES_LIBRARY}) +SET(CMAKE_REQUIRED_LIBRARIES ${CURSES_LIBRARY}) CHECK_CXX_SOURCE_COMPILES(" #include <term.h> int main() |