From 21890abce47296cb038f859c9e9af5095407ed75 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 18 Mar 2018 17:50:46 +0100 Subject: Avoid a completely outdated readline, such as on osx --- cmake/modules/FindReadline.cmake | 26 +++++++++++++------------- sinksh/CMakeLists.txt | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/cmake/modules/FindReadline.cmake b/cmake/modules/FindReadline.cmake index 883ad3f..5e110da 100644 --- a/cmake/modules/FindReadline.cmake +++ b/cmake/modules/FindReadline.cmake @@ -31,17 +31,17 @@ find_library(Readline_LIBRARY HINTS ${Readline_ROOT_DIR}/lib ) -if(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY) - set(READLINE_FOUND TRUE) -else(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY) - FIND_LIBRARY(Readline_LIBRARY NAMES readline) - include(FindPackageHandleStandardArgs) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG Readline_INCLUDE_DIR Readline_LIBRARY ) - MARK_AS_ADVANCED(Readline_INCLUDE_DIR Readline_LIBRARY) -endif(Readline_INCLUDE_DIR AND Readline_LIBRARY AND Ncurses_LIBRARY) +set(Readline_VERSION Readline_VERSION-NOTFOUND) +if (Readline_INCLUDE_DIR) + if(EXISTS "${Readline_INCLUDE_DIR}/readline/readline.h") + file(STRINGS "${Readline_INCLUDE_DIR}/readline/readline.h" _Readline_HEADER_CONTENTS REGEX "#define RL_VERSION_[A-Z]+") + string(REGEX REPLACE ".*#define RL_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" Readline_VERSION_MAJOR "${_Readline_HEADER_CONTENTS}") + string(REGEX REPLACE ".*#define RL_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" Readline_VERSION_MINOR "${_Readline_HEADER_CONTENTS}") + set(Readline_VERSION ${Readline_VERSION_MAJOR}.${Readline_VERSION_MINOR}) + unset(_Readline_HEADER_CONTENTS) + endif() +endif() -mark_as_advanced( - Readline_ROOT_DIR - Readline_INCLUDE_DIR - Readline_LIBRARY - ) +find_package_handle_standard_args(Readline FOUND_VAR Readline_FOUND + REQUIRED_VARS Readline_LIBRARY Readline_INCLUDE_DIR Readline_ROOT_DIR + VERSION_VAR Readline_VERSION) diff --git a/sinksh/CMakeLists.txt b/sinksh/CMakeLists.txt index cc95c83..66619bd 100644 --- a/sinksh/CMakeLists.txt +++ b/sinksh/CMakeLists.txt @@ -1,6 +1,6 @@ project(sinksh) -find_package(Readline REQUIRED) +find_package(Readline 6.0 REQUIRED) set(sink_cli_SRCS main.cpp -- cgit v1.2.3