GBE: fix terminfo library linkage
authorBoqun Feng <boqun.feng@gmail.com>
Mon, 17 Feb 2014 01:49:26 +0000 (09:49 +0800)
committerZhigang Gong <zhigang.gong@intel.com>
Mon, 17 Feb 2014 03:21:06 +0000 (11:21 +0800)
In some distros, the terminal libraries are divided into two
libraries, one is tinfo and the other is ncurses, however, for
other distros, there is only one single ncurses library with
all functions.
In order to link proper terminal library for LLVM, find_library
macro in cmake can be used. In this patch, the tinfo is prefered,
so that it wouldn't affect linkage behavior in distros with tinfo.

Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Reviewed-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
backend/src/CMakeLists.txt

index 6db4a2a..6e37d95 100644 (file)
@@ -189,7 +189,13 @@ target_link_libraries(
                       ${CMAKE_DL_LIBS})
 
 if (LLVM_VERSION_NODOT VERSION_EQUAL 34)
-  target_link_libraries(gbe tinfo)
+  find_library(TERMINFO NAMES tinfo ncurses)
+  if (${TERMINFO} STREQUAL TERMINFO-NOTFOUND)
+    message(FATAL_ERROR "no libtinfo or libncurses is found in system")
+  else (${TERMINFO} STREQUAL TERMINFO-NOTFOUND)
+    target_link_libraries(gbe ${TERMINFO})
+    message(STATUS "use ${TERMINFO} as terminal control library")
+  endif (${TERMINFO} STREQUAL TERMINFO-NOTFOUND)
 endif(LLVM_VERSION_NODOT VERSION_EQUAL 34)
 
 link_directories (${LLVM_LIBRARY_DIR})