FindSDL_ttf

查找 SDL_ttf 库,该库提供在 SDL (Simple DirectMedia Layer) 应用程序中渲染 TrueType 字体文本的功能。

find_package(SDL_ttf [<version>] [...])

注意

此模块专门针对 SDL_ttf 版本 1。从版本 2.0.15 开始,当使用 CMake 构建时,SDL_ttf 会提供一个 CMake 包配置文件,应使用 find_package(SDL2_ttf) 进行查找。类似地,可以使用 find_package(SDL3_ttf) 查找 SDL_ttf 版本 3。这些较新版本提供了 导入目标 (Imported Targets),这些目标封装了使用要求。有关更多信息,请参阅官方 SDL 文档。

结果变量

此模块定义了以下变量

SDL_ttf_FOUND

3.3 版本中新增。

一个布尔值,指示是否找到了(请求版本的)SDL_ttf 库。

SDL_ttf_VERSION

版本 4.2 中添加。

包含找到的 SDL_ttf 版本的人类可读字符串。

SDL_TTF_INCLUDE_DIRS

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

SDL_TTF_LIBRARIES

链接使用 SDL_ttf 所需的库。

提示

此模块接受以下变量

SDLDIR

环境变量,可用于帮助定位安装在自定义位置的 SDL 库。它应指向配置、构建和安装 SDL 库时使用的安装目标:./configure --prefix=$SDLDIR

已弃用变量

以下变量提供用于向后兼容性

SDL_TTF_VERSION_STRING

自版本 4.2 起已弃用: 请使用 SDL_ttf_VERSION,它的值相同。

包含找到的 SDL_ttf 版本的人类可读字符串。

SDL_TTF_FOUND

自版本 4.2 起已弃用: 请使用 SDL_ttf_FOUND,它的值相同。

SDLTTF_FOUND

自版本 2.8.10 起已弃用: 已替换为 SDL_ttf_FOUND,它的值相同。

SDLTTF_INCLUDE_DIR

自版本 2.8.10 起已弃用: 已替换为 SDL_TTF_INCLUDE_DIRS,它的值相同。

SDLTTF_LIBRARY

自版本 2.8.10 起已弃用: 已替换为 SDL_TTF_LIBRARIES,它的值相同。

示例

查找 SDL_ttf 库并创建一个导入的接口目标,用于将其链接到项目目标。

find_package(SDL_ttf)

if(SDL_ttf_FOUND AND NOT TARGET SDL::SDL_ttf)
  add_library(SDL::SDL_ttf INTERFACE IMPORTED)
  set_target_properties(
    SDL::SDL_ttf
    PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${SDL_TTF_INCLUDE_DIRS}"
      INTERFACE_LINK_LIBRARIES "${SDL_TTF_LIBRARIES}"
  )
endif()

target_link_libraries(project_target PRIVATE SDL::SDL_ttf)

在使用 SDL_ttf 版本 2 时,上游包直接提供了 SDL2_ttf::SDL2_ttf 导入目标。可以在项目中使用它,而无需使用此模块。

find_package(SDL2_ttf)
target_link_libraries(project_target PRIVATE SDL2_ttf::SDL2_ttf)

类似地,对于 SDL_ttf 版本 3。

find_package(SDL3_ttf)
target_link_libraries(project_target PRIVATE SDL3_ttf::SDL3_ttf)

另请参阅

  • 用于查找主 SDL 库的 FindSDL 模块。