From 548880a5171ea2bb0948833932d07448b6dba278 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Fri, 12 Aug 2016 14:50:02 -0400 Subject: [PATCH] support -ledit or -lreadline --- CMakeLists.txt | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index acac809..b92db5c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,10 +11,16 @@ set (PROJECT_NAME "MPW Shell") # INCLUDE (CheckFunctionExists) +INCLUDE (CheckLibraryExists) + SET(CMAKE_EXTRA_INCLUDE_FILES stdio.h) CHECK_FUNCTION_EXISTS(dprintf HAVE_DPRINTF) SET(CMAKE_EXTRA_INCLUDE_FILES) +CHECK_LIBRARY_EXISTS(edit readline "" HAVE_LIBEDIT) +CHECK_LIBRARY_EXISTS(readline readline "" HAVE_LIBREADLINE) +CHECK_LIBRARY_EXISTS(history add_history "" HAVE_LIBHISTORY) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) @@ -98,7 +104,18 @@ add_executable(mpw-shell mpw-shell.cpp mpw-shell-token.cpp mpw-shell-expand.cpp cxx/directory_iterator.cpp ) -target_link_libraries(mpw-shell edit) +# +# -ledit includes history stuff. gnu -lreadline does not. +# +if(HAVE_LIBEDIT) + target_link_libraries(mpw-shell edit) +elseif(HAVE_LIBREADLINE) + target_link_libraries(mpw-shell readline) + if (HAVE_LIBHISTORY) + target_link_libraries(mpw-shell history) + endif() +endif() + # all this for -std=c++14 set_property (TARGET mpw-shell PROPERTY CXX_STANDARD 14)