@@ -13,7 +13,7 @@ Imported Targets
13
13
This module provides the following imported targets, if found:
14
14
15
15
``Curses::curses``
16
- The CURSES library
16
+ The CURSES library and possibly TINFO library
17
17
18
18
Result Variables
19
19
^^^^^^^^^^^^^^^^
@@ -34,20 +34,26 @@ Cache Variables
34
34
35
35
The following cache variables may also be set:
36
36
37
- ``CURSES_INCLUDE_DIR``
38
- The directory containing ``foo.h``.
37
+ ``NCURSES_INCLUDE_DIR``
38
+ The directory containing ``ncurses.h``.
39
+ ``PDCURSES_INCLUDE_DIR``
40
+ The directory containing ``curses.h``.
39
41
``CURSES_LIBRARY``
40
42
The path to the CURSES library.
43
+ ``TINFO_LIBRARY``
44
+ The path to the TINFO library.
41
45
42
46
#]=======================================================================]
43
47
44
- find_package (PkgConfig QUIET )
45
- # First try for NCurses
46
- pkg_search_module (PC_NCurses QUIET ncurses ncursesw )
48
+ if (NOT NCURSES_INCLUDE_DIR )
49
+ find_package (PkgConfig QUIET )
50
+ # First try for NCurses
51
+ pkg_search_module (PC_NCurses QUIET ncurses ncursesw )
52
+ endif ()
47
53
48
54
find_path (NCURSES_INCLUDE_DIR
49
- NAMES ncurses.h
50
- PATHS ${PC_NCurses_INCLUDE_DIRS} ${CURSES_INCLUDE_DIR}
55
+ NAMES ncurses.h
56
+ PATHS ${PC_NCurses_INCLUDE_DIRS} ${CURSES_INCLUDE_DIR}
51
57
)
52
58
53
59
string (FIND ${NCURSES_INCLUDE_DIR} "-NOTFOUND" NCURSES_NOT_FOUND )
@@ -69,82 +75,99 @@ if(NCURSES_NOT_FOUND EQUAL -1)
69
75
70
76
include (FindPackageHandleStandardArgs )
71
77
find_package_handle_standard_args (CURSES
72
- FOUND_VAR CURSES_FOUND
73
- REQUIRED_VARS
74
- CURSES_LIBRARY
75
- NCURSES_INCLUDE_DIR
76
- VERSION_VAR CURSES_VERSION
78
+ FOUND_VAR CURSES_FOUND
79
+ REQUIRED_VARS
80
+ CURSES_LIBRARY
81
+ NCURSES_INCLUDE_DIR
82
+ VERSION_VAR CURSES_VERSION
83
+ )
84
+
85
+ include (FindPackageHandleStandardArgs )
86
+ find_package_handle_standard_args (TINFO
87
+ FOUND_VAR TINFO_FOUND
88
+ REQUIRED_VARS
89
+ TINFO_LIBRARY
90
+ NCURSES_INCLUDE_DIR
91
+ VERSION_VAR CURSES_VERSION
92
+ NAME_MISMATCHED
77
93
)
78
94
79
95
set (HAVE_LIBNCURSES 1 )
80
96
set (CURSES_INCLUDE "<ncurses.h>" )
81
97
82
- set (CURSES_LIBRARIES ${CURSES_LIBRARY} )
98
+ if (NOT TINFO_FOUND )
99
+ set (CURSES_LIBRARIES "${CURSES_LIBRARY} " )
100
+ else ()
101
+ set (CURSES_LIBRARIES "${CURSES_LIBRARY} ;${TINFO_LIBRARY} " )
102
+ endif ()
103
+
83
104
set (CURSES_INCLUDE_DIRS ${NCURSES_INCLUDE_DIR} )
84
105
set (CURSES_DEFINITIONS ${PC_NCurses_CFLAGS_OTHER} )
85
106
86
107
if (NOT TARGET Curses::curses )
87
- add_library (Curses::curses INTERFACE IMPORTED )
88
- set_target_properties (Curses::curses PROPERTIES
89
- INTERFACE_COMPILE_OPTIONS "${PC_NCurses_CFLAGS_OTHER} "
90
- INTERFACE_INCLUDE_DIRECTORIES "${CURSES_INCLUDE_DIRS} "
91
- INTERFACE_LINK_LIBRARIES "${CURSES_LIBRARY } "
92
- )
108
+ add_library (Curses::curses INTERFACE IMPORTED )
109
+ set_target_properties (Curses::curses PROPERTIES
110
+ INTERFACE_COMPILE_OPTIONS "${PC_NCurses_CFLAGS_OTHER} "
111
+ INTERFACE_INCLUDE_DIRECTORIES "${CURSES_INCLUDE_DIRS} "
112
+ INTERFACE_LINK_LIBRARIES "${CURSES_LIBRARIES } "
113
+ )
93
114
endif ()
94
115
else ()
95
- # Try for PDCurses
96
- pkg_check_modules (PC_PDCurses QUIET curses )
97
-
98
- find_path (PDCURSES_INCLUDE_DIR
99
- NAMES curses.h
100
- PATHS ${PC_PDCurses_INCLUDE_DIRS} ${CURSES_INCLUDE_DIR}
101
- )
102
-
103
- string (FIND ${PDCURSES_INCLUDE_DIR} "-NOTFOUND" PDCURSES_NOT_FOUND )
104
- if (PDCURSES_NOT_FOUND EQUAL -1 )
105
- #
106
- # pdcurses WAS found!
107
- #
108
- set (HAVE_LIBPDCURSES 1 )
109
- set (CURSES_INCLUDE "<curses.h>" )
110
-
111
- find_library (CURSES_LIBRARY
112
- NAMES curses pdcurses
113
- PATHS ${PC_PDCurses_LIBRARY_DIRS}
114
- )
115
-
116
- set (CURSES_VERSION ${PC_PDCurses_VERSION} )
117
-
118
- include (FindPackageHandleStandardArgs )
119
- find_package_handle_standard_args (CURSES
120
- FOUND_VAR CURSES_FOUND
121
- REQUIRED_VARS
122
- CURSES_LIBRARY
123
- PDCURSES_INCLUDE_DIR
124
- VERSION_VAR CURSES_VERSION
125
- )
116
+ # Try for PDCurses
117
+ pkg_check_modules (PC_PDCurses QUIET curses )
126
118
127
- set (HAVE_LIBPDCURSES 1 )
128
- set (CURSES_INCLUDE "<curses.h>" )
119
+ find_path (PDCURSES_INCLUDE_DIR
120
+ NAMES curses.h
121
+ PATHS ${PC_PDCurses_INCLUDE_DIRS} ${CURSES_INCLUDE_DIR}
122
+ )
129
123
130
- set (CURSES_LIBRARIES ${CURSES_LIBRARY} )
131
- set (CURSES_INCLUDE_DIRS ${PDCURSES_INCLUDE_DIR} )
132
- set (CURSES_DEFINITIONS ${PC_PDCurses_CFLAGS_OTHER} )
124
+ string (FIND ${PDCURSES_INCLUDE_DIR} "-NOTFOUND" PDCURSES_NOT_FOUND )
125
+ if (PDCURSES_NOT_FOUND EQUAL -1 )
126
+ #
127
+ # pdcurses WAS found!
128
+ #
129
+ set (HAVE_LIBPDCURSES 1 )
130
+ set (CURSES_INCLUDE "<curses.h>" )
133
131
134
- if (NOT TARGET Curses::curses )
135
- add_library (Curses::curses UNKNOWN IMPORTED )
136
- set_target_properties (Curses::curses PROPERTIES
137
- INTERFACE_COMPILE_OPTIONS "${PC_PDCurses_CFLAGS_OTHER} "
138
- INTERFACE_INCLUDE_DIRECTORIES "${CURSES_INCLUDE_DIRS} "
139
- IMPORTED_LOCATION "${CURSES_LIBRARY} "
132
+ find_library (CURSES_LIBRARY
133
+ NAMES curses pdcurses
134
+ PATHS ${PC_PDCurses_LIBRARY_DIRS}
140
135
)
141
- endif ()
142
- else ()
143
- message (FATAL_ERROR "Unable to find ncurses or pdcurses" )
144
- endif ()
136
+
137
+ set (CURSES_VERSION ${PC_PDCurses_VERSION} )
138
+
139
+ include (FindPackageHandleStandardArgs )
140
+ find_package_handle_standard_args (CURSES
141
+ FOUND_VAR CURSES_FOUND
142
+ REQUIRED_VARS
143
+ CURSES_LIBRARY
144
+ PDCURSES_INCLUDE_DIR
145
+ VERSION_VAR CURSES_VERSION
146
+ )
147
+
148
+ set (HAVE_LIBPDCURSES 1 )
149
+ set (CURSES_INCLUDE "<curses.h>" )
150
+
151
+ set (CURSES_LIBRARIES ${CURSES_LIBRARY} )
152
+ set (CURSES_INCLUDE_DIRS ${PDCURSES_INCLUDE_DIR} )
153
+ set (CURSES_DEFINITIONS ${PC_PDCurses_CFLAGS_OTHER} )
154
+
155
+ if (NOT TARGET Curses::curses )
156
+ add_library (Curses::curses UNKNOWN IMPORTED )
157
+ set_target_properties (Curses::curses PROPERTIES
158
+ INTERFACE_COMPILE_OPTIONS "${PC_PDCurses_CFLAGS_OTHER} "
159
+ INTERFACE_INCLUDE_DIRECTORIES "${CURSES_INCLUDE_DIRS} "
160
+ IMPORTED_LOCATION "${CURSES_LIBRARIES} "
161
+ )
162
+ endif ()
163
+ else ()
164
+ message (FATAL_ERROR "Unable to find ncurses or pdcurses" )
165
+ endif ()
145
166
endif ()
146
167
147
168
mark_as_advanced (
148
- CURSES_INCLUDE_DIR
149
- CURSES_LIBRARY
169
+ NCURSES_INCLUDE_DIR
170
+ PDCURSES_INCLUDE_DIR
171
+ CURSES_LIBRARY
172
+ TINFO_LIBRARY
150
173
)
0 commit comments