blob: c3f5512dfeb0006ba59ce8c36a66c686980b1084 [file] [log] [blame]
# 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)