|  | # Attempts to discover terminfo library with a linkable setupterm function. | 
|  | # | 
|  | # Example usage: | 
|  | # | 
|  | # find_package(Terminfo) | 
|  | # | 
|  | # If successful, the following variables will be defined: | 
|  | # Terminfo_FOUND | 
|  | # Terminfo_LIBRARIES | 
|  | # | 
|  | # Additionally, the following import target will be defined: | 
|  | # Terminfo::terminfo | 
|  |  | 
|  | find_library(Terminfo_LIBRARIES NAMES terminfo tinfo curses ncurses ncursesw) | 
|  |  | 
|  | if(Terminfo_LIBRARIES) | 
|  | include(CMakePushCheckState) | 
|  | include(CheckCSourceCompiles) | 
|  | cmake_push_check_state() | 
|  | list(APPEND CMAKE_REQUIRED_LIBRARIES ${Terminfo_LIBRARIES}) | 
|  | check_c_source_compiles(" | 
|  | int setupterm(char *term, int filedes, int *errret); | 
|  | int main() { return setupterm(0, 0, 0); }" | 
|  | Terminfo_LINKABLE) | 
|  | cmake_pop_check_state() | 
|  | endif() | 
|  |  | 
|  | include(FindPackageHandleStandardArgs) | 
|  | find_package_handle_standard_args(Terminfo | 
|  | FOUND_VAR | 
|  | Terminfo_FOUND | 
|  | REQUIRED_VARS | 
|  | Terminfo_LIBRARIES | 
|  | Terminfo_LINKABLE) | 
|  | mark_as_advanced(Terminfo_LIBRARIES | 
|  | Terminfo_LINKABLE) | 
|  |  | 
|  | if(Terminfo_FOUND) | 
|  | if(NOT TARGET Terminfo::terminfo) | 
|  | add_library(Terminfo::terminfo UNKNOWN IMPORTED) | 
|  | set_target_properties(Terminfo::terminfo PROPERTIES IMPORTED_LOCATION "${Terminfo_LIBRARIES}") | 
|  | endif() | 
|  | endif() |