4 # Finds the Alsa library
6 # This will define the following target:
8 # ${APP_NAME_LC}::Alsa - The Alsa library
10 if(NOT TARGET ${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME})
11 find_package(PkgConfig QUIET)
14 if(Alsa_FIND_VERSION_EXACT)
15 set(Alsa_FIND_SPEC "=${Alsa_FIND_VERSION_COMPLETE}")
17 set(Alsa_FIND_SPEC ">=${Alsa_FIND_VERSION_COMPLETE}")
22 pkg_check_modules(PC_ALSA alsa${Alsa_FIND_SPEC} QUIET)
25 find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h
26 HINTS ${PC_ALSA_INCLUDEDIR}
28 find_library(ALSA_LIBRARY NAMES asound
29 HINTS ${PC_ALSA_LIBDIR}
32 set(ALSA_VERSION ${PC_ALSA_VERSION})
34 include(FindPackageHandleStandardArgs)
35 find_package_handle_standard_args(Alsa
36 REQUIRED_VARS ALSA_LIBRARY ALSA_INCLUDE_DIR
37 VERSION_VAR ALSA_VERSION)
40 list(APPEND AUDIO_BACKENDS_LIST "alsa")
41 set(AUDIO_BACKENDS_LIST ${AUDIO_BACKENDS_LIST} PARENT_SCOPE)
43 # We explicitly dont include ALSA_INCLUDE_DIR, as 'timer.h' is a dangerous file
44 add_library(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} UNKNOWN IMPORTED)
45 set_target_properties(${APP_NAME_LC}::${CMAKE_FIND_PACKAGE_NAME} PROPERTIES
46 IMPORTED_LOCATION "${ALSA_LIBRARY}"
47 INTERFACE_COMPILE_DEFINITIONS HAS_ALSA)