mirror of
https://github.com/PCRE2Project/pcre2.git
synced 2025-10-16 22:35:45 +08:00
53 lines
1.8 KiB
CMake
53 lines
1.8 KiB
CMake
# from http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/FindReadline.cmake
|
|
# http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/COPYING-CMAKE-SCRIPTS
|
|
# --> BSD licensed
|
|
#
|
|
# GNU Readline library finder
|
|
|
|
find_path(READLINE_INCLUDE_DIR readline/readline.h PATH_SUFFIXES include)
|
|
mark_as_advanced(READLINE_INCLUDE_DIR)
|
|
|
|
find_library(READLINE_LIBRARY NAMES readline)
|
|
mark_as_advanced(READLINE_LIBRARY)
|
|
|
|
if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
|
|
# Check if we need to link to ncurses as well
|
|
|
|
include(CheckSymbolExists)
|
|
include(CMakePushCheckState)
|
|
|
|
cmake_push_check_state(RESET)
|
|
set(CMAKE_REQUIRED_LIBRARIES "${READLINE_LIBRARY}")
|
|
set(CMAKE_REQUIRED_INCLUDES "${READLINE_INCLUDE_DIR}")
|
|
check_symbol_exists("readline" "stdio.h;readline/readline.h" HAVE_READLINE_FUNC)
|
|
|
|
if(NOT HAVE_READLINE_FUNC)
|
|
foreach(
|
|
lib
|
|
IN
|
|
ITEMS tinfo curses ncurses ncursesw termcap
|
|
)
|
|
find_library(NCURSES_LIBRARY_${lib} NAMES ${lib})
|
|
mark_as_advanced(NCURSES_LIBRARY_${lib})
|
|
if(NCURSES_LIBRARY_${lib})
|
|
cmake_reset_check_state()
|
|
set(CMAKE_REQUIRED_LIBRARIES "${READLINE_LIBRARY}" "${NCURSES_LIBRARY_${lib}}")
|
|
set(CMAKE_REQUIRED_INCLUDES "${READLINE_INCLUDE_DIR}")
|
|
check_symbol_exists("readline" "stdio.h;readline/readline.h" HAVE_READLINE_FUNC_${lib})
|
|
|
|
if(HAVE_READLINE_FUNC_${lib})
|
|
message(STATUS "Looking for readline - readline needs ${lib}")
|
|
set(NCURSES_LIBRARY "${NCURSES_LIBRARY_${lib}}" CACHE FILEPATH "Path to the ncurses library")
|
|
mark_as_advanced(NCURSES_LIBRARY)
|
|
break()
|
|
endif()
|
|
endif()
|
|
endforeach()
|
|
endif()
|
|
|
|
cmake_pop_check_state()
|
|
endif()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(Readline DEFAULT_MSG READLINE_LIBRARY READLINE_INCLUDE_DIR)
|