Warning, /libraries/phonon/cmake/FindPulseAudio.cmake is written in an unsupported language. File is not indexed.

0001 # Try to find the PulseAudio library
0002 #
0003 # Once done this will define:
0004 #
0005 #  PULSEAUDIO_FOUND - system has the PulseAudio library
0006 #  PULSEAUDIO_INCLUDE_DIR - the PulseAudio include directory
0007 #  PULSEAUDIO_LIBRARY - the libraries needed to use PulseAudio
0008 #  PULSEAUDIO_MAINLOOP_LIBRARY - the libraries needed to use PulsAudio Mainloop
0009 #
0010 # The minimum required version of PulseAudio can be specified using the
0011 # standard syntax, e.g. find_package(PulseAudio 1.0)
0012 #
0013 # Copyright (c) 2008, Matthias Kretz, <kretz@kde.org>
0014 # Copyright (c) 2009, Marcus Hufgard, <Marcus.Hufgard@hufgard.de>
0015 # Copyright (c) 2011, Colin Guthrie, <colin@mageia.org>
0016 # Copyright (c) 2019, Harald Sitter, <sitter@kde.org>
0017 #
0018 # Redistribution and use is allowed according to the terms of the BSD license.
0019 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
0020 
0021 # Support PULSEAUDIO_MINIMUM_VERSION for compatibility:
0022 if(NOT PULSEAUDIO_FIND_VERSION)
0023   set(PULSEAUDIO_FIND_VERSION "${PULSEAUDIO_MINIMUM_VERSION}")
0024 endif(NOT PULSEAUDIO_FIND_VERSION)
0025 
0026 # the minimum version of PulseAudio we require
0027 if(NOT PULSEAUDIO_FIND_VERSION)
0028   set(PULSEAUDIO_FIND_VERSION "0.9.9")
0029 endif(NOT PULSEAUDIO_FIND_VERSION)
0030 
0031 # Newer PA's ship a PackageConfig.cmake file, so lets try and use it.
0032 find_package(PulseAudio ${PULSEAUDIO_FIND_VERSION} QUIET NO_MODULE)
0033 if (PULSEAUDIO_FOUND)
0034     return()
0035 endif()
0036 
0037 if (NOT WIN32)
0038    include(FindPkgConfig)
0039    pkg_check_modules(PC_PULSEAUDIO QUIET libpulse>=${PULSEAUDIO_FIND_VERSION})
0040    pkg_check_modules(PC_PULSEAUDIO_MAINLOOP QUIET libpulse-mainloop-glib)
0041 endif (NOT WIN32)
0042 
0043 find_path(PULSEAUDIO_INCLUDE_DIR pulse/pulseaudio.h
0044    HINTS
0045    ${PC_PULSEAUDIO_INCLUDEDIR}
0046    ${PC_PULSEAUDIO_INCLUDE_DIRS}
0047    )
0048 
0049 find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse
0050    HINTS
0051    ${PC_PULSEAUDIO_LIBDIR}
0052    ${PC_PULSEAUDIO_LIBRARY_DIRS}
0053    )
0054 
0055 find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib
0056    HINTS
0057    ${PC_PULSEAUDIO_LIBDIR}
0058    ${PC_PULSEAUDIO_LIBRARY_DIRS}
0059    )
0060 
0061 if (PULSEAUDIO_VERSION)
0062    # Already in cache, be silent
0063    set(PULSEAUDIO_FIND_QUIETLY TRUE)
0064 endif (PULSEAUDIO_VERSION)
0065 
0066 if (PULSEAUDIO_INCLUDE_DIR AND NOT PULSEAUDIO_VERSION)
0067    # Use the separate major, minor, micro defines as these are more reliable than the combined string
0068    # which may change if/when the minor or micro bits are dropped...
0069    file(STRINGS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h" pulse_version_h REGEX ".*define.+PA_MAJOR.+")
0070    string(REGEX REPLACE ".*define.+PA_M[A-Z]+[^0-9]+([0-9]+).*" "\\1" PULSEAUDIO_MAJOR "${pulse_version_h}")
0071 
0072    file(STRINGS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h" pulse_version_h REGEX ".*define.+PA_MINOR.+")
0073    string(REGEX REPLACE ".*define.+PA_M[A-Z]+[^0-9]+([0-9]+).*" "\\1" PULSEAUDIO_MINOR "${pulse_version_h}")
0074 
0075    file(STRINGS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h" pulse_version_h REGEX ".*define.+PA_MICRO.+")
0076    string(REGEX REPLACE ".*define.+PA_M[A-Z]+[^0-9]+([0-9]+).*" "\\1" PULSEAUDIO_MICRO "${pulse_version_h}")
0077 
0078    set(PULSEAUDIO_VERSION "${PULSEAUDIO_MAJOR}.${PULSEAUDIO_MINOR}.${PULSEAUDIO_MICRO}" CACHE STRING "Version number of PulseAudio" FORCE)
0079 endif (PULSEAUDIO_INCLUDE_DIR AND NOT PULSEAUDIO_VERSION)
0080 
0081 # NB find_package_handle_standard_args seems to fail horribly and not work
0082 
0083 #include(FindPackageHandleStandardArgs)
0084 #find_package_handle_standard_args(PulseAudio REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_INCLUDE_DIR
0085 #                                             VERSION_VAR PULSEAUDIO_VERSION )
0086 
0087 if(PULSEAUDIO_VERSION VERSION_LESS PULSEAUDIO_FIND_VERSION)
0088     message(WARNING "PulseAudio version not new enough: ${PULSEAUDIO_VERSION}")
0089     set(PULSEAUDIO_FOUND FALSE)
0090 endif()
0091 
0092 if(PULSEAUDIO_INCLUDE_DIR AND PULSEAUDIO_LIBRARY)
0093     set(PULSEAUDIO_FOUND FALSE)
0094 endif()
0095 
0096 if (PULSEAUDIO_FOUND)
0097    if (NOT PULSEAUDIO_FIND_QUIETLY)
0098       message(STATUS "Found PulseAudio: ${PULSEAUDIO_LIBRARY}")
0099       if (PULSEAUDIO_MAINLOOP_LIBRARY)
0100           message(STATUS "Found PulseAudio Mainloop: ${PULSEAUDIO_MAINLOOP_LIBRARY}")
0101       else (PULSAUDIO_MAINLOOP_LIBRARY)
0102           message(STATUS "Could NOT find PulseAudio Mainloop Library")
0103       endif (PULSEAUDIO_MAINLOOP_LIBRARY)
0104    endif (NOT PULSEAUDIO_FIND_QUIETLY)
0105 else (PULSEAUDIO_FOUND)
0106    message(STATUS "Could NOT find PulseAudio")
0107 endif (PULSEAUDIO_FOUND)
0108 
0109 mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY)