[llvm][lldb] use FindLibEdit.cmake everywhere
Currently, LLVM's LineEditor and LLDB both use libedit, but find them in different (inconsistent) ways. This causes issues e.g. when you are using a locally installed version of libedit, which will not be used by clang-query, but by lldb if picked up by FindLibEdit.cmake Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D124673
This commit is contained in:
committed by
Fangrui Song
parent
6f3c7dfb77
commit
b1aed14bfe
@@ -62,3 +62,9 @@ else()
|
||||
mark_as_advanced(LibEdit_INCLUDE_DIRS LibEdit_LIBRARIES)
|
||||
endif()
|
||||
|
||||
if (LibEdit_FOUND AND NOT TARGET LibEdit::LibEdit)
|
||||
add_library(LibEdit::LibEdit UNKNOWN IMPORTED)
|
||||
set_target_properties(LibEdit::LibEdit PROPERTIES
|
||||
IMPORTED_LOCATION ${LibEdit_LIBRARIES}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${LibEdit_INCLUDE_DIRS})
|
||||
endif()
|
||||
@@ -4,6 +4,12 @@ if(POLICY CMP0116)
|
||||
cmake_policy(SET CMP0116 OLD)
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
|
||||
set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
|
||||
endif()
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${LLVM_COMMON_CMAKE_UTILS}/Modules")
|
||||
|
||||
option(LLVM_INSTALL_TOOLCHAIN_ONLY "Only include toolchain files in the 'install' target." OFF)
|
||||
|
||||
find_package(LLVM REQUIRED CONFIG HINTS ${LLVM_DIR} NO_CMAKE_FIND_ROOT_PATH)
|
||||
@@ -105,6 +111,10 @@ include_directories(
|
||||
"${LLVM_INCLUDE_DIRS}"
|
||||
"${CLANG_INCLUDE_DIRS}")
|
||||
|
||||
if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS)
|
||||
set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
|
||||
endif()
|
||||
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
|
||||
|
||||
@@ -103,10 +103,6 @@ add_dependencies(lldbCore
|
||||
# TODO: Remove once we have better layering
|
||||
set_target_properties(lldbCore PROPERTIES LINK_INTERFACE_MULTIPLICITY 5)
|
||||
|
||||
if (LLDB_ENABLE_LIBEDIT)
|
||||
target_include_directories(lldbCore PRIVATE ${LibEdit_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
if (LLDB_ENABLE_CURSES)
|
||||
target_include_directories(lldbCore PRIVATE ${CURSES_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
@@ -141,7 +141,7 @@ if (HAVE_LIBDL)
|
||||
list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
if (LLDB_ENABLE_LIBEDIT)
|
||||
list(APPEND EXTRA_LIBS ${LibEdit_LIBRARIES})
|
||||
list(APPEND EXTRA_LIBS LibEdit::LibEdit)
|
||||
endif()
|
||||
if (LLDB_ENABLE_LZMA)
|
||||
list(APPEND EXTRA_LIBS ${LIBLZMA_LIBRARIES})
|
||||
@@ -151,7 +151,7 @@ if (WIN32)
|
||||
endif()
|
||||
|
||||
if (LLDB_ENABLE_LIBEDIT)
|
||||
list(APPEND LLDB_LIBEDIT_LIBS ${LibEdit_LIBRARIES})
|
||||
list(APPEND LLDB_LIBEDIT_LIBS LibEdit::LibEdit)
|
||||
if (LLVM_BUILD_STATIC)
|
||||
list(APPEND LLDB_SYSTEM_LIBS gpm)
|
||||
endif()
|
||||
@@ -171,6 +171,3 @@ add_lldb_library(lldbHost
|
||||
Support
|
||||
)
|
||||
|
||||
if (LLDB_ENABLE_LIBEDIT)
|
||||
target_include_directories(lldbHost PUBLIC ${LibEdit_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
@@ -68,6 +68,3 @@ add_dependencies(lldbInterpreter
|
||||
LLDBInterpreterPropertiesGen
|
||||
LLDBInterpreterPropertiesEnumGen)
|
||||
|
||||
if (LLDB_ENABLE_LIBEDIT)
|
||||
target_include_directories(lldbInterpreter PRIVATE ${LibEdit_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
@@ -10,7 +10,7 @@ add_definitions(-DLLDB_PYTHON_EXE_RELATIVE_PATH="${LLDB_PYTHON_EXE_RELATIVE_PATH
|
||||
|
||||
|
||||
if (LLDB_ENABLE_LIBEDIT)
|
||||
list(APPEND LLDB_LIBEDIT_LIBS ${LibEdit_LIBRARIES})
|
||||
list(APPEND LLDB_LIBEDIT_LIBS LibEdit::LibEdit)
|
||||
endif()
|
||||
|
||||
add_lldb_library(lldbPluginScriptInterpreterPython PLUGIN
|
||||
@@ -35,9 +35,3 @@ add_lldb_library(lldbPluginScriptInterpreterPython PLUGIN
|
||||
LINK_COMPONENTS
|
||||
Support
|
||||
)
|
||||
|
||||
if (LLDB_ENABLE_LIBEDIT)
|
||||
target_include_directories(lldbPluginScriptInterpreterPython PUBLIC
|
||||
${LibEdit_INCLUDE_DIRS}
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -64,7 +64,6 @@ check_symbol_exists(FE_ALL_EXCEPT "fenv.h" HAVE_DECL_FE_ALL_EXCEPT)
|
||||
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,8 +183,9 @@ if(NOT LLVM_USE_SANITIZER MATCHES "Memory.*")
|
||||
# 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)
|
||||
if (LLVM_ENABLE_LIBEDIT AND NOT LLVM_USE_SANITIZER MATCHES ".*Address.*")
|
||||
find_package(LibEdit)
|
||||
set(HAVE_LIBEDIT ${LibEdit_FOUND})
|
||||
else()
|
||||
set(HAVE_LIBEDIT 0)
|
||||
endif()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
if(HAVE_LIBEDIT)
|
||||
set(link_libs edit)
|
||||
set(link_libs LibEdit::LibEdit)
|
||||
endif()
|
||||
|
||||
add_llvm_component_library(LLVMLineEditor
|
||||
|
||||
@@ -142,7 +142,7 @@ static_library("Host") {
|
||||
# list(APPEND EXTRA_LIBS ${CMAKE_DL_LIBS})
|
||||
# endif()
|
||||
# if (LLDB_ENABLE_LIBEDIT)
|
||||
# list(APPEND EXTRA_LIBS ${LibEdit_LIBRARIES})
|
||||
# list(APPEND EXTRA_LIBS LibEdit::LibEdit)
|
||||
# endif()
|
||||
# if (LLDB_ENABLE_LZMA)
|
||||
# list(APPEND EXTRA_LIBS ${LIBLZMA_LIBRARIES})
|
||||
|
||||
Reference in New Issue
Block a user