forked from OSchip/llvm-project
Revert "Use find_library for ncurses"
The introduction of find_library for ncurses caused more issues than it solved problems. The current open issue is it makes the static build of LLVM fail. It is better to revert for now, and get back to it later. Revert "[CMake] Fix an issue where get_system_libname creates an empty regex capture on windows" This reverts commit1ed1e16ab8
. Revert "Fix msan build" This reverts commit34fe9613dd
. Revert "[CMake] Always mark terminfo as unavailable on Windows" This reverts commit76bf26236f
. Revert "[CMake] Fix OCaml build failure because of absolute path in system libs" This reverts commit8e4acb82f7
. Revert "[CMake] Don't look for terminfo libs when LLVM_ENABLE_TERMINFO=OFF" This reverts commit495f91fd33
. Revert "Use find_library for ncurses" This reverts commita52173a3e5
. Differential revision: https://reviews.llvm.org/D86521
This commit is contained in:
parent
ae8fa1d8a6
commit
cdcb9ab10e
|
@ -133,18 +133,17 @@ check_library_exists(pthread pthread_create "" COMPILER_RT_HAS_LIBPTHREAD)
|
|||
check_library_exists(execinfo backtrace "" COMPILER_RT_HAS_LIBEXECINFO)
|
||||
|
||||
# Look for terminfo library, used in unittests that depend on LLVMSupport.
|
||||
if(LLVM_ENABLE_TERMINFO STREQUAL FORCE_ON)
|
||||
set(MAYBE_REQUIRED REQUIRED)
|
||||
else()
|
||||
set(MAYBE_REQUIRED)
|
||||
endif()
|
||||
if(LLVM_ENABLE_TERMINFO)
|
||||
find_library(COMPILER_RT_TERMINFO_LIB NAMES terminfo tinfo curses ncurses ncursesw ${MAYBE_REQUIRED})
|
||||
endif()
|
||||
if(COMPILER_RT_TERMINFO_LIB)
|
||||
set(LLVM_ENABLE_TERMINFO 1)
|
||||
else()
|
||||
set(LLVM_ENABLE_TERMINFO 0)
|
||||
foreach(library terminfo tinfo curses ncurses ncursesw)
|
||||
string(TOUPPER ${library} library_suffix)
|
||||
check_library_exists(
|
||||
${library} setupterm "" COMPILER_RT_HAS_TERMINFO_${library_suffix})
|
||||
if(COMPILER_RT_HAS_TERMINFO_${library_suffix})
|
||||
set(COMPILER_RT_HAS_TERMINFO TRUE)
|
||||
set(COMPILER_RT_TERMINFO_LIB "${library}")
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if (ANDROID AND COMPILER_RT_HAS_LIBDL)
|
||||
|
|
|
@ -55,7 +55,7 @@ set(XRAY_UNITTEST_LINK_FLAGS
|
|||
if (NOT APPLE)
|
||||
# Needed by LLVMSupport.
|
||||
append_list_if(
|
||||
LLVM_ENABLE_TERMINFO
|
||||
COMPILER_RT_HAS_TERMINFO
|
||||
-l${COMPILER_RT_TERMINFO_LIB} XRAY_UNITTEST_LINK_FLAGS)
|
||||
|
||||
if (COMPILER_RT_STANDALONE_BUILD)
|
||||
|
|
|
@ -11,8 +11,8 @@ set(LLDB_LIBEDIT_LIBS)
|
|||
|
||||
if (LLDB_ENABLE_CURSES)
|
||||
list(APPEND LLDB_CURSES_LIBS ${CURSES_LIBRARIES} ${PANEL_LIBRARIES})
|
||||
if(LLVM_ENABLE_TERMINFO)
|
||||
list(APPEND LLDB_CURSES_LIBS ${TERMINFO_LIB})
|
||||
if(LLVM_ENABLE_TERMINFO AND HAVE_TERMINFO)
|
||||
list(APPEND LLDB_CURSES_LIBS ${TERMINFO_LIBS})
|
||||
endif()
|
||||
if (LLVM_BUILD_STATIC)
|
||||
list(APPEND LLDB_CURSES_LIBS gpm)
|
||||
|
|
|
@ -148,18 +148,19 @@ if(NOT LLVM_USE_SANITIZER MATCHES "Memory.*")
|
|||
else()
|
||||
set(HAVE_LIBEDIT 0)
|
||||
endif()
|
||||
if(LLVM_ENABLE_TERMINFO STREQUAL FORCE_ON)
|
||||
set(MAYBE_REQUIRED REQUIRED)
|
||||
else()
|
||||
set(MAYBE_REQUIRED)
|
||||
endif()
|
||||
if(LLVM_ENABLE_TERMINFO)
|
||||
find_library(TERMINFO_LIB NAMES terminfo tinfo curses ncurses ncursesw ${MAYBE_REQUIRED})
|
||||
endif()
|
||||
if(TERMINFO_LIB)
|
||||
set(LLVM_ENABLE_TERMINFO 1)
|
||||
set(HAVE_TERMINFO 0)
|
||||
foreach(library terminfo 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()
|
||||
endforeach()
|
||||
else()
|
||||
set(LLVM_ENABLE_TERMINFO 0)
|
||||
set(HAVE_TERMINFO 0)
|
||||
endif()
|
||||
|
||||
find_library(ICONV_LIBRARY_PATH NAMES iconv libiconv libiconv-2 c)
|
||||
|
@ -176,11 +177,7 @@ if(NOT LLVM_USE_SANITIZER MATCHES "Memory.*")
|
|||
endif()
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
set(LLVM_ENABLE_TERMINFO 0)
|
||||
endif()
|
||||
else()
|
||||
set(LLVM_ENABLE_TERMINFO 0)
|
||||
endif()
|
||||
|
||||
if (LLVM_ENABLE_LIBXML2 STREQUAL "FORCE_ON" AND NOT LLVM_LIBXML2_ENABLED)
|
||||
|
|
|
@ -212,7 +212,7 @@
|
|||
#cmakedefine HAVE_SYSEXITS_H ${HAVE_SYSEXITS_H}
|
||||
|
||||
/* Define if the setupterm() function is supported this platform. */
|
||||
#cmakedefine LLVM_ENABLE_TERMINFO ${LLVM_ENABLE_TERMINFO}
|
||||
#cmakedefine HAVE_TERMINFO ${HAVE_TERMINFO}
|
||||
|
||||
/* Define if the xar_open() function is supported this platform. */
|
||||
#cmakedefine HAVE_LIBXAR ${HAVE_LIBXAR}
|
||||
|
|
|
@ -2,19 +2,6 @@ if(LLVM_ENABLE_ZLIB)
|
|||
set(imported_libs ZLIB::ZLIB)
|
||||
endif()
|
||||
|
||||
function(get_system_libname libpath libname)
|
||||
get_filename_component(libpath ${libpath} NAME)
|
||||
if( CMAKE_FIND_LIBRARY_PREFIXES )
|
||||
string(REPLACE ";" "|" PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}")
|
||||
string(REGEX REPLACE "^(${PREFIXES})" "" libpath ${libpath})
|
||||
endif()
|
||||
if( CMAKE_FIND_LIBRARY_SUFFIXES )
|
||||
string(REPLACE ";" "|" SUFFIXES "${CMAKE_FIND_LIBRARY_SUFFIXES}")
|
||||
string(REGEX REPLACE "(${SUFFIXES})$" "" libpath ${libpath})
|
||||
endif()
|
||||
set(${libname} "${libpath}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if( MSVC OR MINGW )
|
||||
# libuuid required for FOLDERID_Profile usage in lib/Support/Windows/Path.inc.
|
||||
# advapi32 required for CryptAcquireContextW in lib/Support/Windows/Path.inc.
|
||||
|
@ -34,8 +21,10 @@ elseif( CMAKE_HOST_UNIX )
|
|||
STRING(REGEX REPLACE "^lib" "" Backtrace_LIBFILE ${Backtrace_LIBFILE})
|
||||
set(system_libs ${system_libs} ${Backtrace_LIBFILE})
|
||||
endif()
|
||||
if( LLVM_ENABLE_TERMINFO )
|
||||
set(imported_libs ${imported_libs} "${TERMINFO_LIB}")
|
||||
if(LLVM_ENABLE_TERMINFO)
|
||||
if(HAVE_TERMINFO)
|
||||
set(system_libs ${system_libs} ${TERMINFO_LIBS})
|
||||
endif()
|
||||
endif()
|
||||
if( LLVM_ENABLE_THREADS AND (HAVE_LIBATOMIC OR HAVE_CXX_LIBATOMICS64) )
|
||||
set(system_libs ${system_libs} atomic)
|
||||
|
@ -248,15 +237,20 @@ if(LLVM_ENABLE_ZLIB)
|
|||
if(NOT zlib_library)
|
||||
get_property(zlib_library TARGET ZLIB::ZLIB PROPERTY LOCATION)
|
||||
endif()
|
||||
get_system_libname(${zlib_library} zlib_library)
|
||||
get_filename_component(zlib_library ${zlib_library} NAME)
|
||||
if(CMAKE_STATIC_LIBRARY_PREFIX AND CMAKE_STATIC_LIBRARY_SUFFIX AND
|
||||
zlib_library MATCHES "^${CMAKE_STATIC_LIBRARY_PREFIX}.*${CMAKE_STATIC_LIBRARY_SUFFIX}$")
|
||||
STRING(REGEX REPLACE "^${CMAKE_STATIC_LIBRARY_PREFIX}" "" zlib_library ${zlib_library})
|
||||
STRING(REGEX REPLACE "${CMAKE_STATIC_LIBRARY_SUFFIX}$" "" zlib_library ${zlib_library})
|
||||
endif()
|
||||
if(CMAKE_SHARED_LIBRARY_PREFIX AND CMAKE_SHARED_LIBRARY_SUFFIX AND
|
||||
zlib_library MATCHES "^${CMAKE_SHARED_LIBRARY_PREFIX}.*${CMAKE_SHARED_LIBRARY_SUFFIX}$")
|
||||
STRING(REGEX REPLACE "^${CMAKE_SHARED_LIBRARY_PREFIX}" "" zlib_library ${zlib_library})
|
||||
STRING(REGEX REPLACE "${CMAKE_SHARED_LIBRARY_SUFFIX}$" "" zlib_library ${zlib_library})
|
||||
endif()
|
||||
set(llvm_system_libs ${llvm_system_libs} "${zlib_library}")
|
||||
endif()
|
||||
|
||||
if(LLVM_ENABLE_TERMINFO)
|
||||
get_system_libname(${TERMINFO_LIB} terminfo_library)
|
||||
set(llvm_system_libs ${llvm_system_libs} "${terminfo_library}")
|
||||
endif()
|
||||
|
||||
set_property(TARGET LLVMSupport PROPERTY LLVM_SYSTEM_LIBS "${llvm_system_libs}")
|
||||
|
||||
if(LLVM_WITH_Z3)
|
||||
|
|
|
@ -313,7 +313,7 @@ unsigned Process::StandardErrColumns() {
|
|||
return getColumns();
|
||||
}
|
||||
|
||||
#ifdef LLVM_ENABLE_TERMINFO
|
||||
#ifdef HAVE_TERMINFO
|
||||
// We manually declare these extern functions because finding the correct
|
||||
// headers from various terminfo, curses, or other sources is harder than
|
||||
// writing their specs down.
|
||||
|
@ -323,12 +323,12 @@ extern "C" int del_curterm(struct term *termp);
|
|||
extern "C" int tigetnum(char *capname);
|
||||
#endif
|
||||
|
||||
#ifdef LLVM_ENABLE_TERMINFO
|
||||
#ifdef HAVE_TERMINFO
|
||||
static ManagedStatic<std::mutex> TermColorMutex;
|
||||
#endif
|
||||
|
||||
static bool terminalHasColors(int fd) {
|
||||
#ifdef LLVM_ENABLE_TERMINFO
|
||||
#ifdef HAVE_TERMINFO
|
||||
// First, acquire a global lock because these C routines are thread hostile.
|
||||
std::lock_guard<std::mutex> G(*TermColorMutex);
|
||||
|
||||
|
|
|
@ -286,9 +286,9 @@ write_cmake_config("config") {
|
|||
}
|
||||
|
||||
if (llvm_enable_terminfo) {
|
||||
values += [ "LLVM_ENABLE_TERMINFO=1" ]
|
||||
values += [ "HAVE_TERMINFO=1" ]
|
||||
} else {
|
||||
values += [ "LLVM_ENABLE_TERMINFO=" ]
|
||||
values += [ "HAVE_TERMINFO=" ]
|
||||
}
|
||||
|
||||
if (llvm_enable_dia_sdk) {
|
||||
|
|
Loading…
Reference in New Issue