[Beignet] [PATCH] GBE: fix terminfo library linkage

Boqun Feng boqun.feng at gmail.com
Mon Feb 17 02:49:26 CET 2014


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 at gmail.com>
---
 backend/src/CMakeLists.txt | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/backend/src/CMakeLists.txt b/backend/src/CMakeLists.txt
index 6db4a2a..6e37d95 100644
--- a/backend/src/CMakeLists.txt
+++ b/backend/src/CMakeLists.txt
@@ -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})
-- 
1.8.5.4



More information about the Beignet mailing list