Merge pull request #26350 from jjd-uk/estuary_media_align
[xbmc.git] / cmake / modules / FindAlsa.cmake
blob4c34e47aef3851e72134d90f9cc977ad8022dc6c
1 #.rst:
2 # FindAlsa
3 # --------
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)
13   if(Alsa_FIND_VERSION)
14     if(Alsa_FIND_VERSION_EXACT)
15       set(Alsa_FIND_SPEC "=${Alsa_FIND_VERSION_COMPLETE}")
16     else()
17       set(Alsa_FIND_SPEC ">=${Alsa_FIND_VERSION_COMPLETE}")
18     endif()
19   endif()
21   if(PKG_CONFIG_FOUND)
22     pkg_check_modules(PC_ALSA alsa${Alsa_FIND_SPEC} QUIET)
23   endif()
25   find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h
26                              HINTS ${PC_ALSA_INCLUDEDIR}
27                              NO_CACHE)
28   find_library(ALSA_LIBRARY NAMES asound
29                             HINTS ${PC_ALSA_LIBDIR}
30                             NO_CACHE)
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)
39   if(ALSA_FOUND)
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)
48   endif()
49 endif()