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)