mirror of
https://github.com/intel/llvm.git
synced 2026-01-14 03:50:17 +08:00
build: use cmake to find the libedit content
Use proper cmake techniques to detect where the libedit package resides. This allows for the use of libedit from an alternative location which is needed for supporting cross-compilation. llvm-svn: 333041
This commit is contained in:
@@ -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)
|
||||
|
||||
62
lldb/cmake/modules/FindLibEdit.cmake
Normal file
62
lldb/cmake/modules/FindLibEdit.cmake
Normal file
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user