2017-07-17 14:21:43 +00:00
|
|
|
include (CMakePushCheckState)
|
|
|
|
cmake_push_check_state ()
|
|
|
|
|
2017-01-25 20:14:41 +00:00
|
|
|
set (READLINE_PATHS "/usr/local/opt/readline/lib")
|
|
|
|
# First try find custom lib for macos users (default lib without history support)
|
2017-01-27 20:00:02 +00:00
|
|
|
find_library (READLINE_LIB NAMES readline PATHS ${READLINE_PATHS} NO_DEFAULT_PATH)
|
2017-01-25 20:14:41 +00:00
|
|
|
if (NOT READLINE_LIB)
|
2017-04-01 07:20:54 +00:00
|
|
|
find_library (READLINE_LIB NAMES readline PATHS ${READLINE_PATHS})
|
2017-01-25 20:14:41 +00:00
|
|
|
endif ()
|
2017-01-17 21:00:23 +00:00
|
|
|
|
2017-01-30 13:40:04 +00:00
|
|
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so.2)
|
2017-01-17 21:00:23 +00:00
|
|
|
|
2017-01-30 13:40:04 +00:00
|
|
|
find_library (TERMCAP_LIB NAMES termcap)
|
2017-01-27 20:00:02 +00:00
|
|
|
find_library (EDIT_LIB NAMES edit)
|
2017-01-17 21:00:23 +00:00
|
|
|
|
2017-01-25 20:14:41 +00:00
|
|
|
set(READLINE_INCLUDE_PATHS "/usr/local/opt/readline/include")
|
2017-01-30 13:40:04 +00:00
|
|
|
if (READLINE_LIB AND TERMCAP_LIB)
|
2017-04-01 07:20:54 +00:00
|
|
|
find_path (READLINE_INCLUDE_DIR NAMES readline/readline.h PATHS ${READLINE_INCLUDE_PATHS} NO_DEFAULT_PATH)
|
|
|
|
if (NOT READLINE_INCLUDE_DIR)
|
|
|
|
find_path (READLINE_INCLUDE_DIR NAMES readline/readline.h PATHS ${READLINE_INCLUDE_PATHS})
|
|
|
|
endif ()
|
2017-04-23 19:17:51 +00:00
|
|
|
if (READLINE_INCLUDE_DIR AND READLINE_LIB)
|
|
|
|
set (USE_READLINE 1)
|
|
|
|
set (LINE_EDITING_LIBS ${READLINE_LIB} ${TERMCAP_LIB})
|
|
|
|
message (STATUS "Using line editing libraries (readline): ${READLINE_INCLUDE_DIR} : ${LINE_EDITING_LIBS}")
|
|
|
|
endif ()
|
2017-11-04 17:58:11 +00:00
|
|
|
elseif (EDIT_LIB AND TERMCAP_LIB)
|
2017-04-01 07:20:54 +00:00
|
|
|
find_library (CURSES_LIB NAMES curses)
|
|
|
|
find_path (READLINE_INCLUDE_DIR NAMES editline/readline.h PATHS ${READLINE_INCLUDE_PATHS})
|
2017-04-23 19:17:51 +00:00
|
|
|
if (CURSES_LIB AND READLINE_INCLUDE_DIR)
|
|
|
|
set (USE_LIBEDIT 1)
|
|
|
|
set (LINE_EDITING_LIBS ${EDIT_LIB} ${CURSES_LIB} ${TERMCAP_LIB})
|
|
|
|
message (STATUS "Using line editing libraries (edit): ${READLINE_INCLUDE_DIR} : ${LINE_EDITING_LIBS}")
|
|
|
|
endif ()
|
2017-01-17 21:00:23 +00:00
|
|
|
endif ()
|
2017-04-23 19:17:51 +00:00
|
|
|
|
|
|
|
if (LINE_EDITING_LIBS AND READLINE_INCLUDE_DIR)
|
|
|
|
include (CheckCXXSourceRuns)
|
2017-01-25 20:14:41 +00:00
|
|
|
|
2017-04-23 19:17:51 +00:00
|
|
|
set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LINE_EDITING_LIBS})
|
2017-11-16 21:26:20 +00:00
|
|
|
set (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${READLINE_INCLUDE_DIR})
|
2017-04-23 19:17:51 +00:00
|
|
|
check_cxx_source_runs ("
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <readline/readline.h>
|
|
|
|
#include <readline/history.h>
|
|
|
|
int main() {
|
2017-12-19 15:30:12 +00:00
|
|
|
add_history(NULL);
|
|
|
|
append_history(1,NULL);
|
2017-04-23 19:17:51 +00:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
" HAVE_READLINE_HISTORY)
|
|
|
|
else ()
|
|
|
|
message (STATUS "Not using any library for line editing.")
|
|
|
|
endif ()
|
2017-07-17 14:21:43 +00:00
|
|
|
|
|
|
|
cmake_pop_check_state ()
|