FindCurses¶
Finds the curses or ncurses library.
Curses is a terminal control library for Unix-like systems, used to build text user interface (TUI) applications. Originally developed in 1978, it has since evolved into multiple implementations, most notably ncurses (new curses), BSD curses, and PDCurses (a public domain curses library for non-Unix platforms).
結果變數¶
This module defines the following variables:
Curses_FOUND
Boolean indicating whether the Curses is found. For backward compatibility, the
CURSES_FOUND
variable is also set to the same value.CURSES_INCLUDE_DIRS
在 3.1 版被加入.
The include directories needed to use Curses.
CURSES_LIBRARIES
The libraries needed to use Curses.
CURSES_CFLAGS
在 3.16 版被加入.
Compiler flags which ought be given to C/C++ compilers when using Curses.
CURSES_HAVE_CURSES_H
Boolean indicating whether
curses.h
is available.CURSES_HAVE_NCURSES_H
Boolean indicating whether
ncurses.h
is available.CURSES_HAVE_NCURSES_NCURSES_H
Boolean indicating whether
ncurses/ncurses.h
is available.CURSES_HAVE_NCURSES_CURSES_H
Boolean indicating whether
ncurses/curses.h
is available.
Hints¶
This module accepts the following variables:
CURSES_NEED_NCURSES
Set this variable to
TRUE
before callingfind_package(Curses)
if the the ncurses implementation functionality is specifically required.CURSES_NEED_WIDE
在 3.10 版被加入.
Set this variable to
TRUE
before callingfind_package(Curses)
if Unicode (wide character) support is required.
Deprecated Variables¶
The following legacy variables are provided for backward compatibility:
CURSES_INCLUDE_DIR
在 3.1 版之後被棄用: Use the
CURSES_INCLUDE_DIRS
variable instead.Path to a Curses include directory.
CURSES_LIBRARY
在 2.4 版之後被棄用: Use the
CURSES_LIBRARIES
variable instead.Path to Curses library.
範例¶
Finding Curses and creating an imported interface target for linking it to a project target:
find_package(Curses)
if(Curses_FOUND AND NOT TARGET Curses::Curses)
add_library(Curses::Curses INTERFACE IMPORTED)
set_target_properties(
Curses::Curses
PROPERTIES
INTERFACE_LINK_LIBRARIES "${CURSES_LIBRARIES}"
INTERFACE_INCLUDE_DIRECTORIES "${CURSES_INCLUDE_DIRS}"
)
endif()
add_executable(app app.c)
target_link_libraries(app PRIVATE Curses::Curses)
When ncurses is specifically required:
set(CURSES_NEED_NCURSES TRUE)
find_package(Curses)