summaryrefslogtreecommitdiffstats
path: root/project/cmake/modules/FindPulseAudio.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'project/cmake/modules/FindPulseAudio.cmake')
-rw-r--r--project/cmake/modules/FindPulseAudio.cmake108
1 files changed, 52 insertions, 56 deletions
diff --git a/project/cmake/modules/FindPulseAudio.cmake b/project/cmake/modules/FindPulseAudio.cmake
index 5b57364..5761005 100644
--- a/project/cmake/modules/FindPulseAudio.cmake
+++ b/project/cmake/modules/FindPulseAudio.cmake
@@ -1,72 +1,68 @@
1# Try to find the PulseAudio library 1#.rst:
2# FindPulseAudio
3# --------------
4# Finds the PulseAudio library
2# 5#
3# Once done this will define: 6# This will define the following variables::
4# 7#
5# PULSEAUDIO_FOUND - system has the PulseAudio library 8# PULSEAUDIO_FOUND - system has the PulseAudio library
6# PULSEAUDIO_INCLUDE_DIR - the PulseAudio include directory 9# PULSEAUDIO_INCLUDE_DIRS - the PulseAudio include directory
7# PULSEAUDIO_LIBRARY - the libraries needed to use PulseAudio 10# PULSEAUDIO_LIBRARIES - the libraries needed to use PulseAudio
8# PULSEAUDIO_MAINLOOP_LIBRARY - the libraries needed to use PulsAudio Mailoop 11# PULSEAUDIO_DEFINITIONS - the definitions needed to use PulseAudio
9# 12#
10# Copyright (c) 2008, Matthias Kretz, <kretz@kde.org> 13# and the following imported targets::
11# Copyright (c) 2009, Marcus Hufgard, <Marcus.Hufgard@hufgard.de>
12# 14#
13# Redistribution and use is allowed according to the terms of the BSD license. 15# PulseAudio::PulseAudio - The PulseAudio library
14# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
15 16
16if (NOT PULSEAUDIO_MINIMUM_VERSION) 17if(NOT PulseAudio_FIND_VERSION)
17 set(PULSEAUDIO_MINIMUM_VERSION "1.0.0") 18 set(PulseAudio_FIND_VERSION 2.0.0)
18endif (NOT PULSEAUDIO_MINIMUM_VERSION) 19endif()
19
20if (PULSEAUDIO_INCLUDE_DIRS AND PULSEAUDIO_LIBRARY AND PULSEAUDIO_MAINLOOP_LIBRARY)
21 # Already in cache, be silent
22 set(PULSEAUDIO_FIND_QUIETLY TRUE)
23endif (PULSEAUDIO_INCLUDE_DIRS AND PULSEAUDIO_LIBRARY AND PULSEAUDIO_MAINLOOP_LIBRARY)
24 20
25if (NOT WIN32) 21if(PKG_CONFIG_FOUND)
26 include(FindPkgConfig) 22 pkg_check_modules(PC_PULSEAUDIO libpulse>=${PulseAudio_FIND_VERSION} QUIET)
27 pkg_check_modules(PC_PULSEAUDIO libpulse>=${PULSEAUDIO_MINIMUM_VERSION}) 23 pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib QUIET)
28 pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib) 24endif()
29endif (NOT WIN32)
30 25
31FIND_PATH(PULSEAUDIO_INCLUDE_DIRS pulse/pulseaudio.h 26find_path(PULSEAUDIO_INCLUDE_DIR NAMES pulse/pulseaudio.h
32 HINTS 27 PATHS ${PC_PULSEAUDIO_INCLUDEDIR} ${PC_PULSEAUDIO_INCLUDE_DIRS})
33 ${PC_PULSEAUDIO_INCLUDEDIR}
34 ${PC_PULSEAUDIO_INCLUDE_DIRS}
35 )
36 28
37FIND_LIBRARY(PULSEAUDIO_LIBRARY NAMES pulse libpulse 29find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse
38 HINTS 30 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
39 ${PC_PULSEAUDIO_LIBDIR}
40 ${PC_PULSEAUDIO_LIBRARY_DIRS}
41 )
42 31
43FIND_LIBRARY(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib 32find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib
44 HINTS 33 PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
45 ${PC_PULSEAUDIO_LIBDIR}
46 ${PC_PULSEAUDIO_LIBRARY_DIRS}
47 )
48 34
49if (NOT PULSEAUDIO_INCLUDE_DIRS OR NOT PULSEAUDIO_LIBRARY) 35if(PC_PULSEAUDIO_VERSION)
50 set(PULSEAUDIO_FOUND FALSE) 36 set(PULSEAUDIO_VERSION_STRING ${PC_PULSEAUDIO_VERSION})
51else() 37elseif(PULSEAUDIO_INCLUDE_DIR AND EXISTS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h")
52 set(PULSEAUDIO_FOUND TRUE) 38 file(STRINGS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h" pulseaudio_version_str REGEX "^#define[\t ]+pa_get_headers_version\\(\\)[\t ]+\\(\".*\"\\).*")
39 string(REGEX REPLACE "^#define[\t ]+pa_get_headers_version\\(\\)[\t ]+\\(\"([^\"]+)\"\\).*" "\\1" PULSEAUDIO_VERSION_STRING "${pulseaudio_version_str}")
40 unset(pulseaudio_version_str)
53endif() 41endif()
54 42
55if (PULSEAUDIO_FOUND) 43include(FindPackageHandleStandardArgs)
56 if (NOT PULSEAUDIO_FIND_QUIETLY) 44find_package_handle_standard_args(PulseAudio
57 message(STATUS "Found PulseAudio: ${PULSEAUDIO_LIBRARY}") 45 REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY PULSEAUDIO_INCLUDE_DIR
58 if (PULSEAUDIO_MAINLOOP_LIBRARY) 46 VERSION_VAR PULSEAUDIO_VERSION_STRING)
59 message(STATUS "Found PulseAudio Mainloop: ${PULSEAUDIO_MAINLOOP_LIBRARY}")
60 else (PULSAUDIO_MAINLOOP_LIBRARY)
61 message(STATUS "Could NOT find PulseAudio Mainloop Library")
62 endif (PULSEAUDIO_MAINLOOP_LIBRARY)
63 endif (NOT PULSEAUDIO_FIND_QUIETLY)
64else (PULSEAUDIO_FOUND)
65 message(STATUS "Could NOT find PulseAudio")
66endif (PULSEAUDIO_FOUND)
67 47
68set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY}) 48if(PULSEAUDIO_FOUND)
49 set(PULSEAUDIO_INCLUDE_DIRS ${PULSEAUDIO_INCLUDE_DIR})
50 set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY})
51 set(PULSEAUDIO_DEFINITIONS -DHAVE_LIBPULSE=1)
69 52
70list(APPEND PULSEAUDIO_DEFINITIONS -DHAVE_LIBPULSE=1) 53 if(NOT TARGET PulseAudio::PulseAudioMainloop)
54 add_library(PulseAudio::PulseAudioMainloop UNKNOWN IMPORTED)
55 set_target_properties(PulseAudio::PulseAudioMainloop PROPERTIES
56 IMPORTED_LOCATION "${PULSEAUDIO_MAINLOOP_LIBRARY}")
57 endif()
58 if(NOT TARGET PulseAudio::PulseAudio)
59 add_library(PulseAudio::PulseAudio UNKNOWN IMPORTED)
60 set_target_properties(PulseAudio::PulseAudio PROPERTIES
61 IMPORTED_LOCATION "${PULSEAUDIO_LIBRARY}"
62 INTERFACE_INCLUDE_DIRECTORIES "${PULSEAUDIO_INCLUDE_DIR}"
63 INTERFACE_COMPILE_DEFINITIONS HAVE_LIBPULSE=1
64 INTERFACE_LINK_LIBRARIES PulseAudio::PulseAudioMainloop)
65 endif()
66endif()
71 67
72mark_as_advanced(PULSEAUDIO_INCLUDE_DIRS PULSEAUDIO_LIBRARIES PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY) 68mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY)