summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/CMakeLists.txt2
-rw-r--r--lldb/cmake/modules/FindLibEdit.cmake62
-rw-r--r--lldb/scripts/Python/modules/readline/CMakeLists.txt5
3 files changed, 68 insertions, 1 deletions
diff --git a/lldb/CMakeLists.txt b/lldb/CMakeLists.txt
index 57e1e48c675..83649e4fa8b 100644
--- a/lldb/CMakeLists.txt
+++ b/lldb/CMakeLists.txt
@@ -29,6 +29,8 @@ endif ()
set(LLDB_DISABLE_LIBEDIT ${LLDB_DEFAULT_DISABLE_LIBEDIT} CACHE BOOL "Disables the use of editline.")
if (LLDB_DISABLE_LIBEDIT)
add_definitions( -DLLDB_DISABLE_LIBEDIT )
+else()
+ find_package(LibEdit REQUIRED)
endif()
if(APPLE)
diff --git a/lldb/cmake/modules/FindLibEdit.cmake b/lldb/cmake/modules/FindLibEdit.cmake
new file mode 100644
index 00000000000..81204d42f1d
--- /dev/null
+++ b/lldb/cmake/modules/FindLibEdit.cmake
@@ -0,0 +1,62 @@
+#.rst:
+# FindLibEdit
+# -----------
+#
+# Find libedit library and headers
+#
+# The module defines the following variables:
+#
+# ::
+#
+# libedit_FOUND - true if libedit was found
+# libedit_INCLUDE_DIRS - include search path
+# libedit_LIBRARIES - libraries to link
+# libedit_VERSION - version number
+
+if(libedit_INCLUDE_DIRS AND libedit_LIBRARIES)
+ set(libedit_FOUND TRUE)
+else()
+ find_package(PkgConfig QUIET)
+ pkg_check_modules(PC_LIBEDIT QUIET libedit)
+
+ find_path(libedit_INCLUDE_DIRS
+ NAMES
+ histedit.h
+ HINTS
+ ${PC_LIBEDIT_INCLUDEDIR}
+ ${PC_LIBEDIT_INCLUDE_DIRS}
+ ${CMAKE_INSTALL_FULL_INCLUDEDIR})
+ find_library(libedit_LIBRARIES
+ NAMES
+ edit libedit
+ HINTS
+ ${PC_LIBEDIT_LIBDIR}
+ ${PC_LIBEDIT_LIBRARY_DIRS}
+ ${CMAKE_INSTALL_FULL_LIBDIR})
+
+ if(libedit_INCLUDE_DIRS AND EXISTS "${libedit_INCLUDE_DIRS}/histedit.h")
+ file(STRINGS "${libedit_INCLUDE_DIRS}/histedit.h"
+ libedit_major_version_str
+ REGEX "^#define[ \t]+LIBEDIT_MAJOR[ \t]+[0-9]+")
+ string(REGEX REPLACE "^#define[ \t]+LIBEDIT_MAJOR[ \t]+([0-9]+)" "\\1"
+ LIBEDIT_MAJOR_VERSION "${libedit_major_version_str}")
+
+ file(STRINGS "${libedit_INCLUDE_DIRS}/histedit.h"
+ libedit_minor_version_str
+ REGEX "^#define[ \t]+LIBEDIT_MINOR[ \t]+[0-9]+")
+ string(REGEX REPLACE "^#define[ \t]+LIBEDIT_MINOR[ \t]+([0-9]+)" "\\1"
+ LIBEDIT_MINOR_VERSION "${libedit_minor_version_str}")
+
+ set(libedit_VERSION_STRING "${libedit_major_version}.${libedit_minor_version}")
+ endif()
+
+ include(FindPackageHandleStandardArgs)
+ find_package_handle_standard_args(libedit
+ REQUIRED_VARS
+ libedit_INCLUDE_DIRS
+ libedit_LIBRARIES
+ VERSION_VAR
+ libedit_VERSION_STRING)
+ mark_as_advanced(libedit_INCLUDE_DIRS libedit_LIBRARIES)
+endif()
+
diff --git a/lldb/scripts/Python/modules/readline/CMakeLists.txt b/lldb/scripts/Python/modules/readline/CMakeLists.txt
index 0a4376c1c32..d7b0e468fb9 100644
--- a/lldb/scripts/Python/modules/readline/CMakeLists.txt
+++ b/lldb/scripts/Python/modules/readline/CMakeLists.txt
@@ -6,9 +6,12 @@ SET(PYTHON_DIRECTORY python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-
# Build the readline python module
include_directories(${PYTHON_INCLUDE_DIR})
add_library(readline SHARED readline.cpp)
+target_include_directories(readline
+ PRIVATE
+ ${libedit_INCLUDE_DIRS})
if (NOT LLDB_DISABLE_LIBEDIT)
- target_link_libraries(readline ${PYTHON_LIBRARY} edit)
+ target_link_libraries(readline ${PYTHON_LIBRARY} ${libedit_LIBRARIES})
else()
target_link_libraries(readline ${PYTHON_LIBRARY})
endif()
OpenPOWER on IntegriCloud