blob: ba64aa7e28b23ffcd8534df93099f1aab3b6288a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
|
###########################
# Vala Generation
###########################
set(HEADER_PATH "${CMAKE_CURRENT_BINARY_DIR}/indicator-sound-service.h")
set(SYMBOLS_PATH "${CMAKE_CURRENT_BINARY_DIR}/indicator-sound-service.def")
set(VAPI_PATH "${CMAKE_CURRENT_BINARY_DIR}/indicator-sound-service.vapi")
if(URLDISPATCHER_FOUND)
set (VALA_DEFINE_URLDISPATCHER "--define=HAS_URLDISPATCHER")
set (VALA_PKG_URLDISPATCHER "url-dispatcher")
endif()
if(EXISTS "/usr/share/glib-2.0/schemas/com.ubuntu.sound.gschema.xml")
set (VALA_DEFINE_UBUNTU_SOUND_SCHEMA "--define=HAS_UBUNTU_SOUND_SCHEMA")
endif()
if(EXISTS "/usr/share/accountsservice/interfaces/com.ubuntu.touch.AccountsService.SecurityPrivacy.xml")
set (HAVE_UT_ACCTSERVICE_PRIVACY_SETTINGS ON)
set (VALA_FILE_ACCTSERVICE_PRIVACY_SETTINGS "accounts-service-privacy-settings")
set (VALA_DEFINE_ACCTSERVICE_PRIVACY_SETTINGS "--define=HAS_UT_ACCTSERVICE_PRIVACY_SETTINGS")
else()
set (HAVE_UT_ACCTSERVICE_PRIVACY_SETTINGS OFF)
endif()
if(EXISTS "/usr/share/accountsservice/interfaces/com.ubuntu.touch.AccountsService.Sound.xml")
set (HAVE_UT_ACCTSERVICE_SYSTEMSOUND_SETTINGS ON)
set (VALA_FILE_ACCTSERVICE_SYSTEMSOUND_SETTINGS "accounts-service-system-sound-settings")
set (VALA_DEFINE_ACCTSERVICE_SYSTEMSOUND_SETTINGS "--define=HAS_UT_ACCTSERVICE_SYSTEMSOUND_SETTINGS")
else()
set (HAVE_UT_ACCTSERVICE_SYSTEMSOUND_SETTINGS OFF)
endif()
vapi_gen(accounts-service
LIBRARY
accounts-service
PACKAGES
gio-2.0
INPUT
/usr/share/gir-1.0/AccountsService-1.0.gir
)
vala_init(ayatana-indicator-sound-service
DEPENDS
accounts-service
PACKAGES
config
gee-0.8
gio-2.0
gio-unix-2.0
libxml-2.0
libpulse
libpulse-mainloop-glib
libnotify
accounts-service
${VALA_PKG_URLDISPATCHER}
OPTIONS
--ccode
--thread
--target-glib=${GLIB_2_0_REQUIRED_VERSION}
--vapidir=${CMAKE_SOURCE_DIR}/vapi/
--vapidir=.
--pkg=bus-watcher
${VALA_DEFINE_URLDISPATCHER}
${VALA_DEFINE_UBUNTU_SOUND_SCHEMA}
${VALA_DEFINE_ACCTSERVICE_PRIVACY_SETTINGS}
${VALA_DEFINE_ACCTSERVICE_SYSTEMSOUND_SETTINGS}
)
vala_add(ayatana-indicator-sound-service
notification.vala
)
vala_add(ayatana-indicator-sound-service
info-notification.vala
DEPENDS
notification
volume-control
options
)
vala_add(ayatana-indicator-sound-service
warn-notification.vala
DEPENDS
notification
)
if(URLDISPATCHER_FOUND)
vala_add(ayatana-indicator-sound-service
service.vala
DEPENDS
sound-menu
volume-control
volume-control-pulse
notification
info-notification
volume-warning
options
options-gsettings
media-player
media-player-list
mpris2-interfaces
accounts-service-user
accounts-service-access
)
else()
vala_add(ayatana-indicator-sound-service
service.vala
DEPENDS
sound-menu
volume-control
volume-control-pulse
notification
info-notification
volume-warning
options
options-gsettings
media-player
media-player-list
mpris2-interfaces
accounts-service-user
accounts-service-access
)
endif()
vala_add(ayatana-indicator-sound-service
options.vala
DEPENDS
volume-control
volume-control-pulse
accounts-service-access
)
vala_add(ayatana-indicator-sound-service
options-gsettings.vala
DEPENDS
options
volume-control-pulse
volume-control
accounts-service-access
)
vala_add(ayatana-indicator-sound-service
volume-control.vala
DEPENDS
options
volume-control-pulse
accounts-service-access
)
vala_add(ayatana-indicator-sound-service
accounts-service-access.vala
)
vala_add(ayatana-indicator-sound-service
volume-control-pulse.vala
DEPENDS
accounts-service-access
options
volume-control
)
vala_add(ayatana-indicator-sound-service
volume-warning.vala
DEPENDS
options
volume-control-pulse
volume-control
warn-notification
notification
accounts-service-access
)
vala_add(ayatana-indicator-sound-service
volume-warning-pulse.vala
DEPENDS
volume-warning
options
volume-control-pulse
volume-control
warn-notification
notification
accounts-service-access
)
vala_add(ayatana-indicator-sound-service
media-player.vala
)
vala_add(ayatana-indicator-sound-service
media-player-mpris.vala
DEPENDS
media-player
mpris2-interfaces
)
vala_add(ayatana-indicator-sound-service
media-player-user.vala
DEPENDS
media-player
accounts-service-sound-settings
greeter-broadcast
)
vala_add(ayatana-indicator-sound-service
media-player-list.vala
DEPENDS
media-player
)
vala_add(ayatana-indicator-sound-service
media-player-list-mpris.vala
DEPENDS
media-player-list
media-player
media-player-mpris
mpris2-interfaces
)
vala_add(ayatana-indicator-sound-service
media-player-list-greeter.vala
DEPENDS
media-player-list
media-player-user
media-player
)
vala_add(ayatana-indicator-sound-service
mpris2-interfaces.vala
)
vala_add(ayatana-indicator-sound-service
freedesktop-interfaces.vala
)
vala_add(ayatana-indicator-sound-service
sound-menu.vala
DEPENDS
media-player
volume-control
options
volume-control-pulse
accounts-service-access
)
vala_add(ayatana-indicator-sound-service
accounts-service-user.vala
DEPENDS
media-player
mpris2-interfaces
accounts-service-sound-settings
${VALA_FILE_ACCTSERVICE_PRIVACY_SETTINGS}
${VALA_FILE_ACCTSERVICE_SYSTEMSOUND_SETTINGS}
greeter-broadcast
)
vala_add(ayatana-indicator-sound-service
accounts-service-sound-settings.vala
)
if(${HAVE_UT_ACCTSERVICE_PRIVACY_SETTINGS})
vala_add(ayatana-indicator-sound-service
accounts-service-system-sound-settings.vala
)
endif()
if(${HAVE_UT_ACCTSERVICE_SYSTEMSOUND_SETTINGS})
vala_add(ayatana-indicator-sound-service
accounts-service-privacy-settings.vala
)
endif()
vala_add(ayatana-indicator-sound-service
greeter-broadcast.vala
)
vala_finish(ayatana-indicator-sound-service
SOURCES
project_VALA_SOURCES
OUTPUTS
project_VALA_C
GENERATE_HEADER
${HEADER_PATH}
GENERATE_SYMBOLS
${SYMBOLS_PATH}
GENERATE_VAPI
${VAPI_PATH}
)
set_source_files_properties(
${project_VALA_SOURCES}
PROPERTIES
HEADER_FILE_ONLY TRUE
)
set(
INDICATOR_SOUND_SOURCES
${project_VALA_SOURCES}
${project_VALA_C}
bus-watch-namespace.c
${SYMBOLS_PATH}
)
###########################
# Lib
###########################
add_definitions(
-w
-DG_LOG_DOMAIN="ayatana-indicator-sound"
)
add_library(
indicator-sound-service-lib STATIC
${INDICATOR_SOUND_SOURCES}
)
target_link_libraries(
indicator-sound-service-lib
${SOUNDSERVICE_LIBRARIES}
${URLDISPATCHER_LIBRARIES}
-lm
)
###########################
# Executable
###########################
include_directories(${CMAKE_BINARY_DIR})
add_executable(
indicator-sound-service-bin
main.c
)
set_target_properties(
indicator-sound-service-bin
PROPERTIES
OUTPUT_NAME "ayatana-indicator-sound-service"
)
target_link_libraries(
indicator-sound-service-bin
indicator-sound-service-lib
${PULSEAUDIO_LIBRARIES}
)
###########################
# Installation
###########################
install(
TARGETS indicator-sound-service-bin
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/ayatana-indicator-sound/
)
if(UNITY_API_FOUND)
add_subdirectory(gmenuharness)
endif()
# coverage reporting
set(COVERAGE_TARGETS
${COVERAGE_TARGETS}
indicator-sound-service-lib
indicator-sound-service-bin
PARENT_SCOPE
)
|