From 1f646c6ce0766f8ab59868e7cac24034e6966504 Mon Sep 17 00:00:00 2001 From: Mark Wright Date: Fri, 17 Jan 2014 11:34:58 +0000 Subject: FindCurses: Detect and satisfy ncurses dependency on tinfo When ncurses is built with USE=tinfo we need to find "tinfo" as a dependency of the main library. Otherwise 'cbreak' is missing: ld: ...: undefined reference to symbol 'cbreak' ld: note: 'cbreak' is defined in DSO /lib/libtinfo.so.5 so try adding it to the linker command line See https://bugs.gentoo.org/show_bug.cgi?id=468622 for more information. Applied-by: Rolf Eike Beer --- Modules/FindCurses.cmake | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Modules/FindCurses.cmake b/Modules/FindCurses.cmake index 7948551..a453a67 100644 --- a/Modules/FindCurses.cmake +++ b/Modules/FindCurses.cmake @@ -135,10 +135,20 @@ else() CACHE FILEPATH "The curses library" ${FORCE_IT}) endif() + CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}" + cbreak "" CURSES_NCURSES_HAS_CBREAK) + if(NOT CURSES_NCURSES_HAS_CBREAK) + find_library(CURSES_EXTRA_LIBRARY tinfo HINTS "${_cursesLibDir}") + find_library(CURSES_EXTRA_LIBRARY tinfo ) + CHECK_LIBRARY_EXISTS("${CURSES_EXTRA_LIBRARY}" + cbreak "" CURSES_TINFO_HAS_CBREAK) + endif() endif() -find_library(CURSES_EXTRA_LIBRARY cur_colr HINTS "${_cursesLibDir}") -find_library(CURSES_EXTRA_LIBRARY cur_colr ) +if (NOT CURSES_TINFO_HAS_CBREAK) + find_library(CURSES_EXTRA_LIBRARY cur_colr HINTS "${_cursesLibDir}") + find_library(CURSES_EXTRA_LIBRARY cur_colr ) +endif() find_library(CURSES_FORM_LIBRARY form HINTS "${_cursesLibDir}") find_library(CURSES_FORM_LIBRARY form ) @@ -182,5 +192,7 @@ mark_as_advanced( CURSES_INCLUDE_DIR CURSES_CURSES_HAS_WSYNCUP CURSES_NCURSES_HAS_WSYNCUP + CURSES_NCURSES_HAS_CBREAK + CURSES_TINFO_HAS_CBREAK ) -- cgit v0.12