| 1 |
if (PHONON_BUILD_TESTS) |
| 2 |
add_subdirectory(tests) |
| 3 |
endif (PHONON_BUILD_TESTS) |
| 4 |
|
| 5 |
if (PHONON_BUILD_EXAMPLES) |
| 6 |
add_subdirectory(examples) |
| 7 |
endif (PHONON_BUILD_EXAMPLES) |
| 8 |
|
| 9 |
add_subdirectory(experimental) |
| 10 |
|
| 11 |
set(PULSEAUDIO_MINIMUM_VERSION "0.9.15") |
| 12 |
macro_optional_find_package(PulseAudio) |
| 13 |
if (PULSEAUDIO_FOUND) |
| 14 |
# PULSEAUDIO_DEVICE_MANAGER feature check could be moved to FindPulseAudio.cmake, hint hint. -- Rex |
| 15 |
macro_ensure_version("0.9.21" "${PULSEAUDIO_VERSION}" PULSEAUDIO_DEVICE_MANAGER) |
| 16 |
endif (PULSEAUDIO_FOUND) |
| 17 |
macro_log_feature(PULSEAUDIO_FOUND "PulseAudio" "A cross-platform, networked sound server." "http://www.pulseaudio.org" FALSE "" "Allows audio playback via the PulseAudio soundserver when it is running") |
| 18 |
macro_optional_find_package(GLIB2) |
| 19 |
macro_log_feature(GLIB2_FOUND "GLib2" "GLib 2 is required to compile the pulseaudio for Phonon" "http://www.gtk.org/download/" FALSE) |
| 20 |
|
| 21 |
|
| 22 |
if (GLIB2_FOUND AND PULSEAUDIO_FOUND) |
| 23 |
add_definitions(-DHAVE_PULSEAUDIO) |
| 24 |
include_directories(${GLIB2_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIR}) |
| 25 |
if (PULSEAUDIO_DEVICE_MANAGER) |
| 26 |
add_definitions(-DHAVE_PULSEAUDIO_DEVICE_MANAGER) |
| 27 |
endif(PULSEAUDIO_DEVICE_MANAGER) |
| 28 |
else(GLIB2_FOUND AND PULSEAUDIO_FOUND) |
| 29 |
set(PULSEAUDIO_INCLUDE_DIR "") |
| 30 |
set(PULSEAUDIO_LIBRARY "") |
| 31 |
set(PULSEAUDIO_MAINLOOP_LIBRARY "") |
| 32 |
endif(GLIB2_FOUND AND PULSEAUDIO_FOUND) |
| 33 |
|
| 34 |
|
| 35 |
set(phonon_LIB_SRCS |
| 36 |
objectdescription.cpp |
| 37 |
objectdescriptionmodel.cpp |
| 38 |
phononnamespace.cpp |
| 39 |
mediasource.cpp |
| 40 |
abstractmediastream.cpp |
| 41 |
streaminterface.cpp |
| 42 |
mediaobject.cpp |
| 43 |
medianode.cpp |
| 44 |
path.cpp |
| 45 |
effectparameter.cpp |
| 46 |
effect.cpp |
| 47 |
volumefadereffect.cpp |
| 48 |
abstractaudiooutput.cpp |
| 49 |
abstractaudiooutput_p.cpp |
| 50 |
audiooutput.cpp |
| 51 |
audiooutputinterface.cpp |
| 52 |
abstractvideooutput.cpp |
| 53 |
abstractvideooutput_p.cpp |
| 54 |
backendcapabilities.cpp |
| 55 |
globalconfig.cpp |
| 56 |
factory.cpp |
| 57 |
platform.cpp |
| 58 |
mediacontroller.cpp |
| 59 |
videowidget.cpp |
| 60 |
videoplayer.cpp |
| 61 |
seekslider.cpp |
| 62 |
swiftslider.cpp |
| 63 |
volumeslider.cpp |
| 64 |
effectwidget.cpp |
| 65 |
iodevicestream.cpp |
| 66 |
audiodataoutput.cpp |
| 67 |
pulsesupport.cpp |
| 68 |
) |
| 69 |
|
| 70 |
if (QT_QTDBUS_FOUND) |
| 71 |
list(APPEND phonon_LIB_SRCS |
| 72 |
audiooutputadaptor.cpp |
| 73 |
) |
| 74 |
endif (QT_QTDBUS_FOUND) |
| 75 |
|
| 76 |
|
| 77 |
add_definitions(-DPHONON_LIBRARY_PATH="${PLUGIN_INSTALL_DIR}/plugins") |
| 78 |
automoc4_add_library(phonon SHARED ${phonon_LIB_SRCS}) |
| 79 |
target_link_libraries(phonon ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY}) |
| 80 |
if (GLIB2_FOUND AND PULSEAUDIO_FOUND) |
| 81 |
target_link_libraries(phonon ${GLIB2_LIBRARIES} ${GOBJECT_LIBRARIES} ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY}) |
| 82 |
endif (GLIB2_FOUND AND PULSEAUDIO_FOUND) |
| 83 |
|
| 84 |
if (QT_QTDBUS_FOUND) |
| 85 |
target_link_libraries(phonon ${QT_QTDBUS_LIBRARY}) |
| 86 |
endif (QT_QTDBUS_FOUND) |
| 87 |
if (${CMAKE_SYSTEM_NAME} MATCHES "SunOS") |
| 88 |
# We need to explicitly link libm to phonon in Solaris |
| 89 |
target_link_libraries(phonon m) |
| 90 |
endif (${CMAKE_SYSTEM_NAME} MATCHES "SunOS") |
| 91 |
|
| 92 |
set_target_properties(phonon PROPERTIES |
| 93 |
VERSION ${PHONON_LIB_VERSION} |
| 94 |
SOVERSION ${PHONON_LIB_SOVERSION} |
| 95 |
DEFINE_SYMBOL MAKE_PHONON_LIB |
| 96 |
) |
| 97 |
install(TARGETS phonon ${INSTALL_TARGETS_DEFAULT_ARGS}) |
| 98 |
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/phononnamespace.h.in ${CMAKE_CURRENT_BINARY_DIR}/phononnamespace.h) |
| 99 |
|
| 100 |
install(FILES |
| 101 |
phonon_export.h |
| 102 |
objectdescription.h |
| 103 |
objectdescriptionmodel.h |
| 104 |
${CMAKE_CURRENT_BINARY_DIR}/phononnamespace.h |
| 105 |
mediasource.h |
| 106 |
abstractmediastream.h |
| 107 |
streaminterface.h |
| 108 |
mediaobject.h |
| 109 |
audiooutput.h |
| 110 |
medianode.h |
| 111 |
path.h |
| 112 |
effectparameter.h |
| 113 |
effect.h |
| 114 |
effectinterface.h |
| 115 |
volumefadereffect.h |
| 116 |
volumefaderinterface.h |
| 117 |
abstractaudiooutput.h |
| 118 |
abstractvideooutput.h |
| 119 |
backendcapabilities.h |
| 120 |
phonondefs.h |
| 121 |
backendinterface.h |
| 122 |
mediaobjectinterface.h |
| 123 |
audiooutputinterface.h |
| 124 |
addoninterface.h |
| 125 |
mediacontroller.h |
| 126 |
videowidget.h |
| 127 |
videowidgetinterface.h |
| 128 |
videoplayer.h |
| 129 |
seekslider.h |
| 130 |
volumeslider.h |
| 131 |
effectwidget.h |
| 132 |
platformplugin.h |
| 133 |
audiodataoutput.h |
| 134 |
audiodataoutputinterface.h |
| 135 |
globalconfig.h |
| 136 |
pulsesupport.h |
| 137 |
DESTINATION ${INCLUDE_INSTALL_DIR}/phonon COMPONENT Devel) |
| 138 |
|
| 139 |
install(FILES org.kde.Phonon.AudioOutput.xml DESTINATION ${DBUS_INTERFACES_INSTALL_DIR}) |