mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Target a minimal terminfo library rather than necessarily a full curses
library for color support detection. This still will use a curses library if that is all we have available on the system. This change tries to use a smaller subset of the curses library, specifically the subset that is on some systems split off into a separate library. For example, if you install ncurses configured --with-tinfo, a 'libtinfo' is install that provides just the terminfo querying functionality. That library is now used instead of curses when it is available. This happens to fix a build error on systems with that library because when we tried to link ncurses into the binary, we didn't pull tinfo in as well. =] It should also provide an easy path for supporting the NetBSD libterminfo library, but as I don't have access to a NetBSD system I'm leaving adding that support to those folks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188160 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -74,6 +74,7 @@ check_symbol_exists(FE_INEXACT "fenv.h" HAVE_DECL_FE_INEXACT)
|
||||
check_include_file(mach/mach.h HAVE_MACH_MACH_H)
|
||||
check_include_file(mach-o/dyld.h HAVE_MACH_O_DYLD_H)
|
||||
|
||||
check_include_file(term.h HAVE_TERM_H)
|
||||
check_include_file(curses.h HAVE_CURSES_H)
|
||||
check_include_file(ncurses.h HAVE_NCURSES_H)
|
||||
check_include_file(ncursesw.h HAVE_NCURSESW_H)
|
||||
@@ -103,18 +104,21 @@ if( NOT PURE_WINDOWS )
|
||||
else()
|
||||
set(HAVE_LIBZ 0)
|
||||
endif()
|
||||
if(LLVM_ENABLE_CURSES)
|
||||
check_library_exists(curses has_colors "" HAVE_CURSES)
|
||||
if(NOT HAVE_CURSES)
|
||||
check_library_exists(ncurses has_colors "" HAVE_NCURSES)
|
||||
set(HAVE_CURSES ${HAVE_NCURSES})
|
||||
if(NOT HAVE_CURSES)
|
||||
check_library_exists(ncursesw has_colors "" HAVE_NCURSESW)
|
||||
set(HAVE_CURSES ${HAVE_NCURSESW})
|
||||
if(LLVM_ENABLE_TERMINFO AND
|
||||
(HAVE_TERM_H OR HAVE_CURSES_H OR HAVE_NCURSES_H OR HAVE_NCURSESW_H OR
|
||||
HAVE_NCURSES_CURSES_H OR HAVE_NCURSESW_CURSES_H))
|
||||
set(HAVE_TERMINFO 0)
|
||||
foreach(library tinfo curses ncurses ncursesw)
|
||||
string(TOUPPER ${library} library_suffix)
|
||||
check_library_exists(${library} setupterm "" HAVE_TERMINFO_${library_suffix})
|
||||
if(HAVE_TERMINFO_${library_suffix})
|
||||
set(HAVE_TERMINFO 1)
|
||||
set(TERMINFO_LIBS "${library}")
|
||||
break()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
set(HAVE_CURSES 0)
|
||||
set(HAVE_TERMINFO 0)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@@ -10,13 +10,9 @@ function(get_system_libs return_var)
|
||||
if( HAVE_LIBDL )
|
||||
set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
if(LLVM_ENABLE_CURSES)
|
||||
if(HAVE_NCURSESW)
|
||||
set(system_libs ${system_libs} ncursesw)
|
||||
elseif(HAVE_NCURSES)
|
||||
set(system_libs ${system_libs} ncurses)
|
||||
elseif(HAVE_CURSES)
|
||||
set(system_libs ${system_libs} curses)
|
||||
if(LLVM_ENABLE_TERMINFO)
|
||||
if(HAVE_TERMINFO)
|
||||
set(system_libs ${system_libs} ${TERMINFO_LIBS})
|
||||
endif()
|
||||
endif()
|
||||
if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
|
||||
|
@@ -20,7 +20,7 @@ set(TARGET_TRIPLE "@TARGET_TRIPLE@")
|
||||
|
||||
set(LLVM_TOOLS_BINARY_DIR @LLVM_TOOLS_BINARY_DIR@)
|
||||
|
||||
set(LLVM_ENABLE_CURSES @LLVM_ENABLE_CURSES@)
|
||||
set(LLVM_ENABLE_TERMINFO @LLVM_ENABLE_TERMINFO@)
|
||||
|
||||
set(LLVM_ENABLE_THREADS @LLVM_ENABLE_THREADS@)
|
||||
|
||||
@@ -30,9 +30,8 @@ set(LLVM_NATIVE_ARCH @LLVM_NATIVE_ARCH@)
|
||||
|
||||
set(LLVM_ENABLE_PIC @LLVM_ENABLE_PIC@)
|
||||
|
||||
set(HAVE_CURSES @HAVE_CURSES@)
|
||||
set(HAVE_NCURSES @HAVE_NCURSES@)
|
||||
set(HAVE_NCURSESW @HAVE_NCURSESW@)
|
||||
set(HAVE_TERMINFO @HAVE_TERMINFO@)
|
||||
set(TERMINFO_LIBS @TERMINFO_LIBS@)
|
||||
set(HAVE_LIBDL @HAVE_LIBDL@)
|
||||
set(HAVE_LIBPTHREAD @HAVE_LIBPTHREAD@)
|
||||
set(HAVE_LIBZ @HAVE_LIBZ@)
|
||||
|
Reference in New Issue
Block a user