diff --git a/lldb/cmake/modules/FindLibEdit.cmake b/cmake/Modules/FindLibEdit.cmake rename from lldb/cmake/modules/FindLibEdit.cmake rename to cmake/Modules/FindLibEdit.cmake diff --git a/lldb/cmake/modules/LLDBConfig.cmake b/lldb/cmake/modules/LLDBConfig.cmake --- a/lldb/cmake/modules/LLDBConfig.cmake +++ b/lldb/cmake/modules/LLDBConfig.cmake @@ -56,7 +56,9 @@ message(STATUS "${description}: ${${variable}}") endmacro() -add_optional_dependency(LLDB_ENABLE_LIBEDIT "Enable editline support in LLDB" LibEdit LibEdit_FOUND) +if(LLVM_ENABLE_LIBEDIT) + find_package(LibEdit REQUIRED) +endif() add_optional_dependency(LLDB_ENABLE_CURSES "Enable curses support in LLDB" CursesAndPanel CURSESANDPANEL_FOUND) add_optional_dependency(LLDB_ENABLE_LZMA "Enable LZMA compression support in LLDB" LibLZMA LIBLZMA_FOUND) add_optional_dependency(LLDB_ENABLE_LUA "Enable Lua scripting support in LLDB" LuaAndSwig LUAANDSWIG_FOUND) diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake --- a/llvm/cmake/config-ix.cmake +++ b/llvm/cmake/config-ix.cmake @@ -64,7 +64,6 @@ check_symbol_exists(FE_INEXACT "fenv.h" HAVE_DECL_FE_INEXACT) check_include_file(mach/mach.h HAVE_MACH_MACH_H) -check_include_file(histedit.h HAVE_HISTEDIT_H) check_include_file(CrashReporterClient.h HAVE_CRASHREPORTERCLIENT_H) if(APPLE) include(CheckCSourceCompiles) @@ -184,10 +183,11 @@ # Don't look for these libraries on Windows. if (NOT PURE_WINDOWS) # Skip libedit if using ASan as it contains memory leaks. - if (LLVM_ENABLE_LIBEDIT AND HAVE_HISTEDIT_H AND NOT LLVM_USE_SANITIZER MATCHES ".*Address.*") - check_library_exists(edit el_init "" HAVE_LIBEDIT) - else() - set(HAVE_LIBEDIT 0) + if (LLVM_ENABLE_LIBEDIT) + if (LLVM_USE_SANITIZER MATCHES ".*Address.*") + message(FATAL_ERROR "LLVM_ENABLE_LIBEDIT cannot be enabled with LLVM_USE_SANITIZER set to AddressSanitizer") + endif() + find_package(LibEdit REQUIRED) endif() if(LLVM_ENABLE_TERMINFO) if(LLVM_ENABLE_TERMINFO STREQUAL FORCE_ON) diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake --- a/llvm/include/llvm/Config/config.h.cmake +++ b/llvm/include/llvm/Config/config.h.cmake @@ -105,7 +105,7 @@ #cmakedefine HAVE_ISATTY 1 /* Define to 1 if you have the `edit' library (-ledit). */ -#cmakedefine HAVE_LIBEDIT ${HAVE_LIBEDIT} +#cmakedefine HAVE_LIBEDIT ${LibEdit_FOUND} /* Define to 1 if you have the `pfm' library (-lpfm). */ #cmakedefine HAVE_LIBPFM ${HAVE_LIBPFM} diff --git a/llvm/lib/LineEditor/CMakeLists.txt b/llvm/lib/LineEditor/CMakeLists.txt --- a/llvm/lib/LineEditor/CMakeLists.txt +++ b/llvm/lib/LineEditor/CMakeLists.txt @@ -1,15 +1,14 @@ -if(HAVE_LIBEDIT) - set(link_libs edit) -endif() +# LibEdit is found in llvm/cmake/config-ix.cmake add_llvm_component_library(LLVMLineEditor LineEditor.cpp ADDITIONAL_HEADER_DIRS ${LLVM_MAIN_INCLUDE_DIR}/llvm/LineEditor + ${LibEdit_INCLUDE_DIRS} LINK_LIBS - ${link_libs} + ${LibEdit_LIBRARIES} LINK_COMPONENTS Support diff --git a/utils/bazel/llvm_configs/config.h.cmake b/utils/bazel/llvm_configs/config.h.cmake --- a/utils/bazel/llvm_configs/config.h.cmake +++ b/utils/bazel/llvm_configs/config.h.cmake @@ -105,7 +105,7 @@ #cmakedefine HAVE_ISATTY 1 /* Define to 1 if you have the `edit' library (-ledit). */ -#cmakedefine HAVE_LIBEDIT ${HAVE_LIBEDIT} +#cmakedefine HAVE_LIBEDIT ${LibEdit_FOUND} /* Define to 1 if you have the `pfm' library (-lpfm). */ #cmakedefine HAVE_LIBPFM ${HAVE_LIBPFM}