| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| # file Copyright.txt or https://cmake.org/licensing for details. |
| |
| #[=======================================================================[.rst: |
| FindALSA |
| -------- |
| |
| Find Advanced Linux Sound Architecture (ALSA) |
| |
| Find the alsa libraries (``asound``) |
| |
| IMPORTED Targets |
| ^^^^^^^^^^^^^^^^ |
| |
| .. versionadded:: 3.12 |
| |
| This module defines :prop_tgt:`IMPORTED` target ``ALSA::ALSA``, if |
| ALSA has been found. |
| |
| Result Variables |
| ^^^^^^^^^^^^^^^^ |
| |
| This module defines the following variables: |
| |
| ``ALSA_FOUND`` |
| True if ALSA_INCLUDE_DIR & ALSA_LIBRARY are found |
| |
| ``ALSA_LIBRARIES`` |
| List of libraries when using ALSA. |
| |
| ``ALSA_INCLUDE_DIRS`` |
| Where to find the ALSA headers. |
| |
| Cache variables |
| ^^^^^^^^^^^^^^^ |
| |
| The following cache variables may also be set: |
| |
| ``ALSA_INCLUDE_DIR`` |
| the ALSA include directory |
| |
| ``ALSA_LIBRARY`` |
| the absolute path of the asound library |
| #]=======================================================================] |
| |
| find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h |
| DOC "The ALSA (asound) include directory" |
| ) |
| |
| find_library(ALSA_LIBRARY NAMES asound |
| DOC "The ALSA (asound) library" |
| ) |
| |
| if(ALSA_INCLUDE_DIR AND EXISTS "${ALSA_INCLUDE_DIR}/alsa/version.h") |
| file(STRINGS "${ALSA_INCLUDE_DIR}/alsa/version.h" alsa_version_str REGEX "^#define[\t ]+SND_LIB_VERSION_STR[\t ]+\".*\"") |
| |
| string(REGEX REPLACE "^.*SND_LIB_VERSION_STR[\t ]+\"([^\"]*)\".*$" "\\1" ALSA_VERSION_STRING "${alsa_version_str}") |
| unset(alsa_version_str) |
| endif() |
| |
| include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) |
| FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALSA |
| REQUIRED_VARS ALSA_LIBRARY ALSA_INCLUDE_DIR |
| VERSION_VAR ALSA_VERSION_STRING) |
| |
| if(ALSA_FOUND) |
| set( ALSA_LIBRARIES ${ALSA_LIBRARY} ) |
| set( ALSA_INCLUDE_DIRS ${ALSA_INCLUDE_DIR} ) |
| if(NOT TARGET ALSA::ALSA) |
| add_library(ALSA::ALSA UNKNOWN IMPORTED) |
| set_target_properties(ALSA::ALSA PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ALSA_INCLUDE_DIRS}") |
| set_property(TARGET ALSA::ALSA APPEND PROPERTY IMPORTED_LOCATION "${ALSA_LIBRARY}") |
| endif() |
| endif() |
| |
| mark_as_advanced(ALSA_INCLUDE_DIR ALSA_LIBRARY) |