FindSDL_mixer¶
Finds the SDL_mixer library that provides an audio mixer with support for various file formats in SDL (Simple DirectMedia Layer) applications:
find_package(SDL_mixer [<version>] [...])
Note
This module is specifically intended for SDL_mixer version 1. Starting with
version 2.5, SDL_mixer provides a CMake package configuration file when built
with CMake and should be found using find_package(SDL2_mixer). These
newer versions provide Imported Targets that encapsulate usage
requirements. Refer to the official SDL documentation for more information.
Result Variables¶
This module defines the following variables:
SDL_mixer_FOUNDAdded in version 3.3.
Boolean indicating whether the (requested version of) SDL_mixer library was found.
SDL_mixer_VERSIONAdded in version 4.2.
The human-readable string containing the version of SDL_mixer found.
SDL_MIXER_INCLUDE_DIRSInclude directories containing headers needed to use the SDL_mixer library.
SDL_MIXER_LIBRARIESLibraries needed to link against to use SDL_mixer.
Hints¶
This module accepts the following variables:
SDLDIREnvironment variable that can be set to help locate an SDL library installed in a custom location. It should point to the installation destination that was used when configuring, building, and installing SDL library:
./configure --prefix=$SDLDIR.
Deprecated Variables¶
The following variables are provided for backward compatibility:
SDL_MIXER_VERSION_STRINGDeprecated since version 4.2: Use
SDL_mixer_VERSION, which has the same value.The human-readable string containing the version of SDL_mixer found.
SDL_MIXER_FOUNDDeprecated since version 4.2: Use
SDL_mixer_FOUND, which has the same value.SDLMIXER_FOUNDDeprecated since version 2.8.10: Use
SDL_mixer_FOUND, which has the same value.SDLMIXER_INCLUDE_DIRDeprecated since version 2.8.10: Use
SDL_MIXER_INCLUDE_DIRS, which has the same value.SDLMIXER_LIBRARYDeprecated since version 2.8.10: Use
SDL_MIXER_LIBRARIES, which has the same value.
Examples¶
Finding SDL_mixer library and creating an imported interface target for linking it to a project target:
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)
When working with SDL_mixer version 2, the upstream package provides the
SDL2_mixer::SDL2_mixer imported target directly. It can be used in a
project without using this module:
find_package(SDL2_mixer)
target_link_libraries(project_target PRIVATE SDL2_mixer::SDL2_mixer)
See Also¶
The
FindSDLmodule to find the main SDL library.