-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathFindReadline.cmake
More file actions
executable file
·110 lines (94 loc) · 3.13 KB
/
FindReadline.cmake
File metadata and controls
executable file
·110 lines (94 loc) · 3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# - 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.
if(Readline_USE_STATIC_LIBS)
set(_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" ".lib")
endif()
if(UNIX)
if(APPLE)
set(root_path "/usr/local/" "/usr/local/opt")
else()
set(root_path "/opt/local/" "/usr/" "/usr/local/")
endif()
FIND_PATH(Readline_ROOT_DIR
NAMES include/readline/readline.h
PATHS ${root_path}
PATH_SUFFIXES readline
NO_DEFAULT_PATH
)
else()
set(Readline_ROOT_DIR ${CMAKE_PREFIX_PATH})
endif()
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_USE_STATIC_LIBS)
if(UNIX)
FIND_PATH(Ncurses_ROOT_DIR
NAMES include/ncurses.h
PATHS ${root_path}
PATH_SUFFIXES ncurses
NO_DEFAULT_PATH
)
FIND_LIBRARY(Ncurses_LIBRARY
NAMES tinfo termcap ncursesw ncurses cursesw curses
HINTS ${Ncurses_ROOT_DIR}/lib
)
if(NOT Ncurses_LIBRARY)
message(FATAL_ERROR "ncurses library not found")
endif()
set(Readline_LIBRARY ${Readline_LIBRARY} ${Ncurses_LIBRARY})
endif()
endif()
if (EXISTS "${Readline_INCLUDE_DIR}/readline/readline.h")
file(STRINGS "${Readline_INCLUDE_DIR}/readline/readline.h" readline_h_content
REGEX "#define RL_READLINE_VERSION" )
string(REGEX REPLACE ".*0x([0-9][0-9])([0-9][0-9]).*" "\\1.\\2"
READLINE_VERSION ${readline_h_content})
string(REGEX REPLACE "^0" "" READLINE_VERSION ${READLINE_VERSION})
string(REPLACE ".0" "." READLINE_VERSION ${READLINE_VERSION})
endif()
if(Readline_USE_STATIC_LIBS)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_CMAKE_FIND_LIBRARY_SUFFIXES})
endif()
# communicate results
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Readline
REQUIRED_VARS
Readline_ROOT_DIR
Readline_INCLUDE_DIR
Readline_LIBRARY
VERSION_VAR
READLINE_VERSION
)
include_directories(${Readline_INCLUDE_DIR})
mark_as_advanced(
Readline_ROOT_DIR
Readline_INCLUDE_DIR
Readline_LIBRARY
)
message(STATUS "Readline info:")
message(STATUS " Readline_ROOT_DIR : ${Readline_ROOT_DIR}")
message(STATUS " Readline_INCLUDE_DIR : ${Readline_INCLUDE_DIR}")
message(STATUS " Readline_LIBRARY : ${Readline_LIBRARY}")