FindOpenAL

查找 Open Audio Library (OpenAL)

find_package(OpenAL [...])

OpenAL 是一个跨平台的 3D 音频 API,旨在高效渲染多声道三维定向音频。它通常用于游戏和多媒体应用程序,以提供沉浸式和空间化的声音。

使用此模块的项目应使用 #include <al.h> 包含 OpenAL 头文件,**而不是** #include <AL/al.h>。原因在于后者不可移植。例如,Windows/Creative Labs 默认不会将 OpenAL 头文件放在 AL/ 中,而 macOS 则使用 <OpenAL/al.h> 的约定。

导入的目标

此模块提供以下 导入目标

OpenAL::OpenAL

在 3.25 版本中新增。

封装 OpenAL 库使用需求的 Target,仅在找到 OpenAL 库时可用。

结果变量

此模块定义了以下变量

OpenAL_FOUND

3.3 版本中新增。

布尔值,指示是否找到 OpenAL。

缓存变量

以下缓存变量也可以设置

OPENAL_INCLUDE_DIR

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

OPENAL_LIBRARY

OpenAL 库的路径。

提示

此模块接受以下变量

OPENALDIR

环境变量,可用于在非标准位置设置 OpenAL 的安装前缀。

OpenAL 的搜索顺序如下:

  1. 默认情况下,在 macOS 上,系统框架会首先被搜索:/System/Library/Frameworks,其优先级可以通过设置 CMAKE_FIND_FRAMEWORK 变量来更改。

  2. 环境变量 ENV{OPENALDIR}

  3. 系统路径。

  4. 用户编译的框架:~/Library/Frameworks

  5. 手动编译的框架:/Library/Frameworks

  6. 附加包:/opt

已弃用变量

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

OPENAL_FOUND

自 4.2 版本起已弃用:请使用 OpenAL_FOUND,其值相同。

布尔值,指示是否找到 OpenAL。

示例

查找 OpenAL 库并将其链接到项目 Target

find_package(OpenAL)
target_link_libraries(project_target PRIVATE OpenAL::OpenAL)