Fix nasty infinite-loop bug in Buffer:sendCollection
[supercollider.git] / cmake_modules / FindReadline.cmake
blob75fe6aabe4ce40938766b2b5510cb76e065b7217
1 find_path(READLINE_INCLUDE_DIR readline/readline.h)
2 find_library(READLINE_LIBRARY NAMES readline)
4 if (READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
5   set (READLINE_FOUND TRUE)
6 endif ()
8 if (READLINE_INCLUDE_DIR AND EXISTS "${READLINE_INCLUDE_DIR}/readline/readline.h")
9   file(STRINGS "${READLINE_INCLUDE_DIR}/readline/readline.h"
10                READLINE_MAJOR_VERSION
11        REGEX "^#define RL_VERSION_MAJOR.*$")
12   file(STRINGS "${READLINE_INCLUDE_DIR}/readline/readline.h"
13                READLINE_MINOR_VERSION
14        REGEX "^#define RL_VERSION_MINOR.*$")
16   string(REGEX REPLACE "^.*RL_VERSION_MAJOR.*([0-9]+).*$"
17                        "\\1"
18                        READLINE_MAJOR_VERSION
19                        "${READLINE_MAJOR_VERSION}")
20   string(REGEX REPLACE "^.*RL_VERSION_MINOR.*([0-9]+).*$"
21                        "\\1"
22                        READLINE_MINOR_VERSION
23                        "${READLINE_MINOR_VERSION}")
25   if(READLINE_MAJOR_VERSION)
26     set(READLINE_VERSION "${READLINE_MAJOR_VERSION}.${READLINE_MINOR_VERSION}")
27   else()
28     set(READLINE_VERSION "(unknown)")
29   endif()
30 endif ()
32 if (READLINE_FOUND)
33   if (Readline_FIND_VERSION VERSION_GREATER READLINE_VERSION)
34     message(STATUS "Found version ${READLINE_VERSION} of GNU Readline at ${READLINE_LIBRARY}, but version ${Readline_FIND_VERSION} required")
35     unset(READLINE_FOUND)
36   else()
37     if (NOT READLINE_FIND_QUIETLY)
38       message(STATUS "Found GNU Readline version ${READLINE_VERSION}: ${READLINE_LIBRARY}")
39     endif ()
40   endif ()
41 else ()
42   if (READLINE_FIND_REQUIRED)
43     message(FATAL_ERROR "Could not find GNU Readline")
44   endif ()
45 endif ()