FindSDL_mixer

查找 SDL_mixer 库,该库为 SDL(Simple DirectMedia Layer)应用程序提供支持各种文件格式的音频混音器。

注意

此模块专门用于 SDL_mixer 版本 1。从版本 2.5 开始,SDL_mixer 在使用 CMake 构建时提供 CMake 包配置文件,应使用 find_package(SDL2_mixer) 进行查找。这些较新版本提供 导入的目标 来封装使用要求。有关更多信息,请参阅官方 SDL 文档。

结果变量

此模块定义了以下变量

SDL_MIXER_FOUND

一个布尔值,指示是否找到(请求版本)的 SDL_mixer 库。为了向后兼容,SDL_MIXER_FOUND 变量也设置为相同的值。

SDL_MIXER_VERSION_STRING

包含所找到的 SDL_mixer 版本的可读字符串。

SDL_MIXER_INCLUDE_DIRS

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

SDL_MIXER_LIBRARIES

链接 SDL_mixer 所需的库。

提示

此模块接受以下变量

SDLDIR

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

已弃用变量

为了向后兼容,以下变量也已设置

SDLMIXER_FOUND

版本 2.8.10 已弃用: 使用 SDL_mixer_FOUND,它具有相同的值。

SDLMIXER_INCLUDE_DIR

版本 2.8.10 已弃用: 使用 SDL_MIXER_INCLUDE_DIRS,它具有相同的值。

SDLMIXER_LIBRARY

版本 2.8.10 已弃用: 使用 SDL_MIXER_LIBRARIES,它具有相同的值。

示例

查找 SDL_mixer 库并创建一个导入的接口目标以将其链接到项目目标

find_package(SDL_mixer)

if(SDL_mixer_FOUND AND NOT TARGET SDL::SDL_mixer)
  add_library(SDL::SDL_mixer INTERFACE IMPORTED)
  set_target_properties(
    SDL::SDL_mixer
    PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${SDL_MIXER_INCLUDE_DIRS}"
      INTERFACE_LINK_LIBRARIES "${SDL_MIXER_LIBRARIES}"
  )
endif()

target_link_libraries(project_target PRIVATE SDL::SDL_mixer)

在使用 SDL_mixer 版本 2 时,上游包直接提供 SDL2_mixer::SDL2_mixer 导入目标。可以在不使用此模块的情况下在项目中使用它

find_package(SDL2_mixer)
target_link_libraries(project_target PRIVATE SDL2_mixer::SDL2_mixer)

另请参阅

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