[Lldb-commits] [PATCH] D46726: build: use cmake to find the libedit content
Saleem Abdulrasool via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Mon May 21 14:31:30 PDT 2018
compnerd updated this revision to Diff 147874.
compnerd added a comment.
fix regex
https://reviews.llvm.org/D46726
Files:
CMakeLists.txt
cmake/modules/FindLibEdit.cmake
scripts/Python/modules/readline/CMakeLists.txt
Index: scripts/Python/modules/readline/CMakeLists.txt
===================================================================
--- scripts/Python/modules/readline/CMakeLists.txt
+++ scripts/Python/modules/readline/CMakeLists.txt
@@ -6,9 +6,12 @@
# 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()
Index: cmake/modules/FindLibEdit.cmake
===================================================================
--- /dev/null
+++ 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()
+
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -29,6 +29,8 @@
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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46726.147874.patch
Type: text/x-patch
Size: 3456 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20180521/d9b5115d/attachment.bin>
More information about the lldb-commits
mailing list