Skip to content
Snippets Groups Projects
Commit eae00e13 authored by Tomáš Pecka's avatar Tomáš Pecka
Browse files

CMake: Redesign FindReadline

parent 6f404209
No related branches found
No related tags found
1 merge request!77Dev tp
# - Try to find readline include dirs and libraries
#
# Usage of this module as follows:
#
# find_package(Readline)
#
# Variables defined by this module:
#
# READLINE_FOUND System has readline, include and lib dirs found
# Readline_INCLUDE_DIR The readline include directories.
# Readline_LIBRARY The readline library.
find_path(READLINE_INCLUDE_DIR NAMES readline/readline.h)
find_library(READLINE_LIBRARY NAMES readline HINTS)
if(READLINE_INCLUDE_DIR)
file(READ "${READLINE_INCLUDE_DIR}/readline/readline.h" READLINE_VERSION_FILE)
string(REGEX MATCH "RL_VERSION_MAJOR[\ \t]*([0-9]*)" _ ${READLINE_VERSION_FILE})
set(READLINE_VERSION ${CMAKE_MATCH_1})
string(REGEX MATCH "RL_VERSION_MINOR[\ \t]*([0-9]*)" _ ${READLINE_VERSION_FILE})
set(READLINE_VERSION "${READLINE_VERSION}.${CMAKE_MATCH_1}")
endif()
# Handle the QUIETLY and REQUIRED arguments and set GRAPHVIZ_FOUND to TRUE if all listed variables are TRUE.
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Readline
FOUND_VAR READLINE_FOUND
REQUIRED_VARS READLINE_INCLUDE_DIR READLINE_LIBRARY
VERSION_VAR READLINE_VERSION
)
mark_as_advanced(READLINE_INCLUDE_DIR READLINE_LIBRARY)
# - Try to find readline include dirs and libraries
#
# Usage of this module as follows:
#
# find_package(Readline)
#
# Variables used by this module, they can change the default behaviour and need
# to be set before calling find_package:
#
# Readline_ROOT_DIR Set this variable to the root installation of
# readline if the module has problems finding the
# proper installation path.
#
# Variables defined by this module:
#
# READLINE_FOUND System has readline, include and lib dirs found
# Readline_INCLUDE_DIR The readline include directories.
# Readline_LIBRARY The readline library.
find_path(Readline_ROOT_DIR
NAMES include/readline/readline.h
)
find_path(Readline_INCLUDE_DIR
NAMES readline/readline.h
HINTS ${Readline_ROOT_DIR}/include
)
find_library(Readline_LIBRARY
NAMES readline
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)
mark_as_advanced(
Readline_ROOT_DIR
Readline_INCLUDE_DIR
Readline_LIBRARY
)
......@@ -62,6 +62,6 @@ include: ${JSONCPP_INCLUDE_DIR}
find: jsoncpp REQUIRED
 
[CMake:Deps:readline]
link: ${Readline_LIBRARY}
include: ${Readline_INCLUDE_DIR}
find: readline REQUIRED
link: ${READLINE_LIBRARY}
include: ${READLINE_INCLUDE_DIR}
find: Readline REQUIRED
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment