FindFLTK

查找 Fast Light Toolkit (FLTK),一个用于 GUI 开发的跨平台工具包。

FLTK 使用基于 CMake 的构建系统,并提供一个包配置文件供项目查找。从 1.4.0 版本开始,它还提供封装使用要求的导入目标。例如,fltk::fltk,可以链接到需要 FLTK 的项目目标。此模块考虑了这一点,并首先尝试以“配置模式”查找 FLTK。如果配置文件不可用,它会回退到“模块模式”并搜索标准位置。有关如何将 FLTK 与 CMake 一起使用的更多信息,请参阅官方 FLTK 文档。

在版本 3.11 中新增: 调试和发布库变体分别查找并使用每个配置变量。

结果变量

此模块定义了以下变量

FLTK_FOUND

指示是否找到 FLTK 的布尔值。

FLTK_LIBRARIES

使用 FLTK 所需链接的库。

FLTK_WRAP_UI

指示是否找到 fluid 可执行文件的布尔值。此变量仅在以“模块模式”找到 FLTK 时可用,并且可以用于,例如,在需要且可用的情况下有条件地调用 fltk_wrap_ui() 命令。

缓存变量

以下缓存变量也可用于设置或使用

FLTK_FLUID_EXECUTABLE

fluid 二进制工具的路径。

FLTK_INCLUDE_DIR

包含使用 FLTK 所需头文件的包含目录。

FLTK_BASE_LIBRARY_RELEASE

3.11 版本新增。

发布(优化)FLTK 基础库的路径。

FLTK_BASE_LIBRARY_DEBUG

3.11 版本新增。

调试 FLTK 基础库的路径。

FLTK_GL_LIBRARY_RELEASE

3.11 版本新增。

发布(优化)FLTK GL 库的路径。

FLTK_GL_LIBRARY_DEBUG

3.11 版本新增。

调试 FLTK GL 库的路径。

FLTK_FORMS_LIBRARY_RELEASE

3.11 版本新增。

发布(优化)FLTK Forms 库的路径。

FLTK_FORMS_LIBRARY_DEBUG

3.11 版本新增。

调试 FLTK Forms 库的路径。

FLTK_IMAGES_LIBRARY_RELEASE

3.11 版本新增。

发布(优化)FLTK Images protobuf 库的路径。

FLTK_IMAGES_LIBRARY_DEBUG

3.11 版本新增。

调试 FLTK Images 库的路径。

输入变量

默认情况下,此模块搜索所有 FLTK 库及其 fluid 可执行文件。在调用 find_package(FLTK) 之前可以设置以下变量,以指示哪些元素对于成功配置是可选的。

FLTK_SKIP_FLUID

设置为布尔值 true 以将 fluid 可执行文件标记为可选。

FLTK_SKIP_FORMS

设置为布尔值 true 以将 FLTK Forms 库标记为可选;因此它将不包含在 FLTK_LIBRARIES 结果变量中。

FLTK_SKIP_IMAGES

设置为布尔值 true 以将 FLTK Image 库标记为可选;因此它将不包含在 FLTK_LIBRARIES 结果变量中。

FLTK_SKIP_OPENGL

设置为布尔值 true 以将 FLTK OpenGL 库标记为可选;因此它将不包含在 FLTK_LIBRARIES 结果变量中。

示例

查找 FLTK 并在上游 FLTK 包未提供时有条件地创建一个 fltk::fltk 导入接口目标。然后导入目标可以链接到项目目标。

find_package(FLTK)

if(FLTK_FOUND AND NOT TARGET fltk::fltk)
  add_library(fltk::fltk INTERFACE IMPORTED)
  set_target_properties(
    fltk::fltk
    PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${FLTK_INCLUDE_DIR}"
      INTERFACE_LINK_LIBRARIES "${FLTK_LIBRARIES}"
  )
endif()

target_link_libraries(project_target PRIVATE fltk::fltk)