FindCurses¶
查找 curses 或 ncurses 库。
Curses 是一个用于类 Unix 系统的终端控制库,用于构建文本用户界面 (TUI) 应用程序。它最初于 1978 年开发,此后演变为多种实现,其中最著名的是 ncurses (new curses)、BSD curses 和 PDCurses(一个用于非 Unix 平台的公共领域 curses 库)。
结果变量¶
此模块定义了以下变量
Curses_FOUND
布尔值,指示是否找到 Curses。为了向后兼容,
CURSES_FOUND
变量也设置为相同的值。CURSES_INCLUDE_DIRS
版本 3.1 中新增。
使用 Curses 所需的包含目录。
CURSES_LIBRARIES
使用 Curses 所需的库。
CURSES_CFLAGS
3.16 版新增。
使用 Curses 时应提供给 C/C++ 编译器的编译标志。
CURSES_HAVE_CURSES_H
布尔值,指示
curses.h
是否可用。CURSES_HAVE_NCURSES_H
布尔值,指示
ncurses.h
是否可用。CURSES_HAVE_NCURSES_NCURSES_H
布尔值,指示
ncurses/ncurses.h
是否可用。CURSES_HAVE_NCURSES_CURSES_H
布尔值,指示
ncurses/curses.h
是否可用。
提示¶
此模块接受以下变量
CURSES_NEED_NCURSES
如果明确需要 ncurses 实现功能,请在调用
find_package(Curses)
之前将此变量设置为TRUE
。CURSES_NEED_WIDE
3.10 版本新增。
如果需要 Unicode(宽字符)支持,请在调用
find_package(Curses)
之前将此变量设置为TRUE
。
已弃用变量¶
以下旧版变量提供用于向后兼容
CURSES_INCLUDE_DIR
自版本 3.1 起已弃用:请改用
CURSES_INCLUDE_DIRS
变量。Curses 包含目录的路径。
CURSES_LIBRARY
自版本 2.4 起已弃用:请改用
CURSES_LIBRARIES
变量。Curses 库的路径。
示例¶
查找 Curses 并创建导入的接口目标以将其链接到项目目标
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)
当明确需要 ncurses 时
set(CURSES_NEED_NCURSES TRUE)
find_package(Curses)