FindOpenAL

Finds the Open Audio Library (OpenAL).

OpenAL is a cross-platform 3D audio API designed for efficient rendering of multichannel three-dimensional positional audio. It is commonly used in games and multimedia applications to provide immersive and spatialized sound.

Projects using this module should include the OpenAL header file using #include <al.h>, and not #include <AL/al.h>. The reason for this is that the latter is not portable. For example, Windows/Creative Labs does not by default put OpenAL headers in AL/ and macOS uses the convention of <OpenAL/al.h>.

Imported Targets

This module provides the following Imported Targets:

OpenAL::OpenAL

Added in version 3.25.

Target encapsulating the OpenAL library usage requirements, available only if the OpenAL library is found.

Result Variables

This module defines the following variables:

OpenAL_FOUND

Boolean indicating whether the OpenAL is found. For backward compatibility, the OPENAL_FOUND variable is also set to the same value.

OPENAL_VERSION_STRING

Human-readable string containing the version of OpenAL found.

Cache Variables

The following cache variables may also be set:

OPENAL_INCLUDE_DIR

The include directory containing headers needed to use the OpenAL library.

OPENAL_LIBRARY

The path to the OpenAL library.

Hints

This module accepts the following variables:

OPENALDIR

Environment variable which can be used to set the installation prefix of OpenAL to be found in non-standard locations.

OpenAL is searched in the following order:

  1. By default on macOS, system framework is searched first: /System/Library/Frameworks, whose priority can be changed by setting the CMAKE_FIND_FRAMEWORK variable.

  2. Environment variable ENV{OPENALDIR}.

  3. System paths.

  4. User-compiled framework: ~/Library/Frameworks.

  5. Manually compiled framework: /Library/Frameworks.

  6. Add-on package: /opt.

Examples

Finding the OpenAL library and linking it to a project target:

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