FindFLTK

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

find_package(FLTK [...])

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

版本 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 Base 库的路径。

FLTK_BASE_LIBRARY_DEBUG

3.11 版本新增。

指向调试 FLTK Base 库的路径。

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)