From 6666bbf908b3f2a61a9ec1959e975de54dc23b0d Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 20 Aug 2009 18:47:46 +0200 Subject: madc: Added support for BSD editline --- CMakeLists.txt | 7 ++++++- FindEditline.cmake | 17 +++++++++++++++++ config.h.in | 2 ++ src/CMakeLists.txt | 2 +- src/madc.cpp | 10 ++++++++-- 5 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 FindEditline.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d859809..729ff76 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,12 +4,17 @@ project(MAD) set(CMAKE_MODULE_PATH ${MAD_SOURCE_DIR}) find_package(LibXml2 REQUIRED) -find_package(Readline REQUIRED) find_package(OpenSSL REQUIRED) find_package(Boost REQUIRED date_time filesystem regex signals system thread) find_package(MySQL) find_package(KRB5 COMPONENTS krb5 kadm-client) +find_package(Editline) +if(NOT EDITLINE_FOUND) + find_package(Readline REQUIRED) + set(EDITLINE_LIBRARY ${READLINE_LIBRARY}) +endif(NOT EDITLINE_FOUND) + if(WIN32) add_definitions(-DWINVER=0x0501 -D_WIN32_WINNT=0x0501) diff --git a/FindEditline.cmake b/FindEditline.cmake new file mode 100644 index 0000000..21c8208 --- /dev/null +++ b/FindEditline.cmake @@ -0,0 +1,17 @@ +FIND_PATH(EDITLINE_INCLUDE_DIR editline/readline.h) +FIND_LIBRARY(EDITLINE_LIBRARY NAMES edit) + +IF (EDITLINE_INCLUDE_DIR AND EDITLINE_LIBRARY) + SET(EDITLINE_FOUND TRUE) +ENDIF (EDITLINE_INCLUDE_DIR AND EDITLINE_LIBRARY) + +IF (EDITLINE_FOUND) + IF (NOT Editline_FIND_QUIETLY) + MESSAGE(STATUS "Found BSD editline: ${EDITLINE_LIBRARY}") + ENDIF (NOT Editline_FIND_QUIETLY) +ELSE (EDITLINE_FOUND) + IF (Editline_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find BSD editline") + ENDIF (Editline_FIND_REQUIRED) +ENDIF (EDITLINE_FOUND) + diff --git a/config.h.in b/config.h.in index 5e7ba50..b60fc25 100644 --- a/config.h.in +++ b/config.h.in @@ -1,3 +1,5 @@ #define MODULE_SUFFIX "${CMAKE_SHARED_MODULE_SUFFIX}" #define DEFAULT_PORT 6666 + +#cmakedefine EDITLINE_FOUND \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 72ed248..b705a89 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,4 +25,4 @@ add_executable(mad mad.cpp) target_link_libraries(mad Daemon Common Net Core) add_executable(madc madc.cpp) -target_link_libraries(madc Client Common Net Core ${READLINE_LIBRARY}) +target_link_libraries(madc Client Common Net Core ${EDITLINE_LIBRARY}) diff --git a/src/madc.cpp b/src/madc.cpp index 0500c0f..c55fd3e 100644 --- a/src/madc.cpp +++ b/src/madc.cpp @@ -17,6 +17,8 @@ * with this program. If not, see . */ +#include "config.h" + #include "Core/ConfigManager.h" #include "Common/ClientConnection.h" @@ -31,8 +33,12 @@ #include -#include -#include +#ifdef EDITLINE_FOUND +# include +#else +# include +# include +#endif using namespace Mad; -- cgit v1.2.3