FindSDL_sound

Finds the SDL_sound library, an abstract soundfile decoder for use in SDL (Simple DirectMedia Layer) applications.

備註

This module is specifically intended for SDL_sound version 1. Starting with version 2.0.2, SDL_sound provides a CMake package configuration file when built with CMake and should be found using find_package(SDL2_sound). These newer versions provide Imported Targets that encapsulate usage requirements. Refer to the upstream SDL_sound documentation for more information.

備註

This module depends on SDL being found and must be called after the find_package(SDL).

Depending on how the SDL_sound library is built, it may require additional dependent libraries to be found for this module to succeed. These dependencies may include MikMod, ModPlug, Ogg, Vorbis, SMPEG, FLAC, and Speex.

結果變數

This module defines the following variables:

SDL_sound_FOUND

Boolean indicating whether the (requested version of) SDL_sound library is found. For backward compatibility, the SDL_SOUND_FOUND variable is also set to the same value.

SDL_SOUND_VERSION_STRING

The human-readable string containing the version of SDL_sound found.

SDL_SOUND_LIBRARIES

Libraries needed to link against to use the SDL_sound library.

快取變數

The following cache variables may also be set:

SDL_SOUND_INCLUDE_DIR

The directory containing the SDL_sound.h and other headers needed to use the SDL_sound library.

SDL_SOUND_LIBRARY

The name of just the SDL_sound library you would link against. Use SDL_SOUND_LIBRARIES for the link instructions and not this one.

MIKMOD_LIBRARY

The path to the dependent MikMod library.

MODPLUG_LIBRARY

The path to the dependent ModPlug library (libmodplug).

OGG_LIBRARY

The path to the dependent Ogg library.

VORBIS_LIBRARY

The path to the dependent Vorbis library.

SMPEG_LIBRARY

The path to the dependent SMPEG library.

FLAC_LIBRARY

The path to the dependent FLAC library.

SPEEX_LIBRARY

The path to the dependent Speex library.

Hints

This module accepts the following variables:

SDLDIR

Environment 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.

On macOS, setting this variable will prefer the Framework version (if found) over others. In this case, the cache value of SDL_LIBRARY would need to be manually changed to override this selection or set the CMAKE_INCLUDE_PATH variable to modify the search paths.

SDLSOUNDDIR

Environment variable that works the same as SDLDIR.

SDL_SOUND_EXTRAS

This is an optional cache variable that can be used to add additional flags that are prepended to the SDL_SOUND_LIBRARIES result variable. This is available mostly for cases this module failed to anticipate for and additional flags must be added.

範例

Finding SDL_sound library and creating an imported interface target for linking it to a project target:

find_package(SDL)
find_package(SDL_sound)

if(SDL_sound_FOUND AND NOT TARGET SDL::SDL_sound)
  add_library(SDL::SDL_sound INTERFACE IMPORTED)
  set_target_properties(
    SDL::SDL_sound
    PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${SDL_SOUND_INCLUDE_DIR}"
      INTERFACE_LINK_LIBRARIES "${SDL_SOUND_LIBRARIES}"
  )

  # Append the SDL dependency as imported target to be transitively linked:
  set_property(
    TARGET SDL::SDL_sound
    APPEND
    PROPERTY INTERFACE_LINK_LIBRARIES SDL::SDL
  )
endif()

target_link_libraries(project_target PRIVATE SDL::SDL_sound)

When working with SDL_sound version 2, the upstream package provides the SDL2_sound::SDL2_sound imported target directly. It can be used in a project without using this module:

find_package(SDL2_sound)
target_link_libraries(project_target PRIVATE SDL2_sound::SDL2_sound)

另請參見

  • The FindSDL module to find the main SDL library.