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})