1# Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2# file Copyright.txt or https://cmake.org/licensing for details. 3 4#[=======================================================================[.rst: 5FindALSA 6-------- 7 8Find Advanced Linux Sound Architecture (ALSA) 9 10Find the alsa libraries (``asound``) 11 12IMPORTED Targets 13^^^^^^^^^^^^^^^^ 14 15.. versionadded:: 3.12 16 17This module defines :prop_tgt:`IMPORTED` target ``ALSA::ALSA``, if 18ALSA has been found. 19 20Result Variables 21^^^^^^^^^^^^^^^^ 22 23This module defines the following variables: 24 25``ALSA_FOUND`` 26 True if ALSA_INCLUDE_DIR & ALSA_LIBRARY are found 27 28``ALSA_LIBRARIES`` 29 List of libraries when using ALSA. 30 31``ALSA_INCLUDE_DIRS`` 32 Where to find the ALSA headers. 33 34Cache variables 35^^^^^^^^^^^^^^^ 36 37The following cache variables may also be set: 38 39``ALSA_INCLUDE_DIR`` 40 the ALSA include directory 41 42``ALSA_LIBRARY`` 43 the absolute path of the asound library 44#]=======================================================================] 45 46find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h 47 DOC "The ALSA (asound) include directory" 48) 49 50find_library(ALSA_LIBRARY NAMES asound 51 DOC "The ALSA (asound) library" 52) 53 54if(ALSA_INCLUDE_DIR AND EXISTS "${ALSA_INCLUDE_DIR}/alsa/version.h") 55 file(STRINGS "${ALSA_INCLUDE_DIR}/alsa/version.h" alsa_version_str REGEX "^#define[\t ]+SND_LIB_VERSION_STR[\t ]+\".*\"") 56 57 string(REGEX REPLACE "^.*SND_LIB_VERSION_STR[\t ]+\"([^\"]*)\".*$" "\\1" ALSA_VERSION_STRING "${alsa_version_str}") 58 unset(alsa_version_str) 59endif() 60 61include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) 62FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALSA 63 REQUIRED_VARS ALSA_LIBRARY ALSA_INCLUDE_DIR 64 VERSION_VAR ALSA_VERSION_STRING) 65 66if(ALSA_FOUND) 67 set( ALSA_LIBRARIES ${ALSA_LIBRARY} ) 68 set( ALSA_INCLUDE_DIRS ${ALSA_INCLUDE_DIR} ) 69 if(NOT TARGET ALSA::ALSA) 70 add_library(ALSA::ALSA UNKNOWN IMPORTED) 71 set_target_properties(ALSA::ALSA PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ALSA_INCLUDE_DIRS}") 72 set_property(TARGET ALSA::ALSA APPEND PROPERTY IMPORTED_LOCATION "${ALSA_LIBRARY}") 73 endif() 74endif() 75 76mark_as_advanced(ALSA_INCLUDE_DIR ALSA_LIBRARY) 77