Add checks for termcap if needed by readline
This commit is contained in:
parent
a529f0a6c9
commit
0e93b0986c
|
@ -36,14 +36,18 @@ find_library(Readline_LIBRARY
|
||||||
NO_DEFAULT_PATH
|
NO_DEFAULT_PATH
|
||||||
)
|
)
|
||||||
|
|
||||||
if(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
|
find_library(Termcap_LIBRARY
|
||||||
|
NAMES tinfo termcap ncursesw ncurses cursesw curses
|
||||||
|
)
|
||||||
|
|
||||||
|
if(Readline_INCLUDE_DIR AND Readline_LIBRARY)
|
||||||
set(READLINE_FOUND TRUE)
|
set(READLINE_FOUND TRUE)
|
||||||
else(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
|
else(Readline_INCLUDE_DIR AND Readline_LIBRARY)
|
||||||
FIND_LIBRARY(Readline_LIBRARY NAMES readline PATHS Readline_ROOT_DIR)
|
FIND_LIBRARY(Readline_LIBRARY NAMES readline PATHS Readline_ROOT_DIR)
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG Readline_INCLUDE_DIR Readline_LIBRARY )
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG Readline_INCLUDE_DIR Readline_LIBRARY )
|
||||||
MARK_AS_ADVANCED(Readline_INCLUDE_DIR Readline_LIBRARY)
|
MARK_AS_ADVANCED(Readline_INCLUDE_DIR Readline_LIBRARY)
|
||||||
endif(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY)
|
endif(Readline_INCLUDE_DIR AND Readline_LIBRARY)
|
||||||
|
|
||||||
mark_as_advanced(
|
mark_as_advanced(
|
||||||
Readline_ROOT_DIR
|
Readline_ROOT_DIR
|
||||||
|
@ -53,22 +57,25 @@ mark_as_advanced(
|
||||||
|
|
||||||
set(CMAKE_REQUIRED_INCLUDES ${Readline_INCLUDE_DIR})
|
set(CMAKE_REQUIRED_INCLUDES ${Readline_INCLUDE_DIR})
|
||||||
set(CMAKE_REQUIRED_LIBRARIES ${Readline_LIBRARY})
|
set(CMAKE_REQUIRED_LIBRARIES ${Readline_LIBRARY})
|
||||||
INCLUDE(CheckCXXSourceCompiles)
|
|
||||||
CHECK_CXX_SOURCE_COMPILES(
|
|
||||||
"
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <readline/readline.h>
|
|
||||||
int
|
|
||||||
main()
|
|
||||||
{
|
|
||||||
char * s = rl_copy_text(0, 0);
|
|
||||||
}
|
|
||||||
" GNU_READLINE_FOUND)
|
|
||||||
|
|
||||||
if(NOT Readline_LIBRARY)
|
include(CheckFunctionExists)
|
||||||
set(Readline_LIBRARY "")
|
check_function_exists(rl_copy_text HAVE_COPY_TEXT)
|
||||||
endif()
|
check_function_exists(rl_filename_completion_function HAVE_COMPLETION_FUNCTION)
|
||||||
|
|
||||||
|
if(NOT HAVE_COMPLETION_FUNCTION)
|
||||||
|
unset(READLINE_FOUND)
|
||||||
|
set(CMAKE_REQUIRED_LIBRARIES ${Readline_LIBRARY} ${Termcap_LIBRARY})
|
||||||
|
check_function_exists(rl_copy_text HAVE_COPY_TEXT_TC)
|
||||||
|
check_function_exists(rl_filename_completion_function HAVE_COMPLETION_FUNCTION_TC)
|
||||||
|
set(HAVE_COMPLETION_FUNCTION ${HAVE_COMPLETION_FUNCTION_TC})
|
||||||
|
set(HAVE_COPY_TEXT ${HAVE_COPY_TEXT_TC})
|
||||||
|
if(HAVE_COMPLETION_FUNCTION)
|
||||||
|
set(Readline_LIBRARY ${Readline_LIBRARY} ${Termcap_LIBRARY})
|
||||||
|
endif(HAVE_COMPLETION_FUNCTION)
|
||||||
|
endif(NOT HAVE_COMPLETION_FUNCTION)
|
||||||
|
|
||||||
|
if(HAVE_COMPLETION_FUNCTION AND HAVE_COPY_TEXT)
|
||||||
|
set(GNU_READLINE_FOUND TRUE)
|
||||||
|
set(READLINE_FOUND TRUE)
|
||||||
|
endif(HAVE_COMPLETION_FUNCTION AND HAVE_COPY_TEXT)
|
||||||
|
|
||||||
if(Readline_LIBRARY AND OPENBSD)
|
|
||||||
list(APPEND EXTRA_LIBRARIES curses)
|
|
||||||
endif()
|
|
||||||
|
|
Loading…
Reference in New Issue