| # 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) |