1pulseaudio_sources = [
2  'caps.c',
3  'cmdline.c',
4  'cpulimit.c',
5  'daemon-conf.c',
6  'dumpmodules.c',
7  'ltdl-bind-now.c',
8  'main.c',
9]
10
11pulseaudio_headers = [
12  'caps.h',
13  'cmdline.h',
14  'cpulimit.h',
15  'daemon-conf.h',
16  'dumpmodules.h',
17  'ltdl-bind-now.h',
18]
19
20if dbus_dep.found()
21  pulseaudio_sources += 'server-lookup.c'
22  pulseaudio_headers += 'server-lookup.h'
23endif
24
25# FIXME: dependencies
26executable('pulseaudio',
27  pulseaudio_sources,
28  pulseaudio_headers,
29  install: true,
30  install_rpath : privlibdir,
31  include_directories : [configinc, topinc],
32  link_args : ['-ffast-math'],
33  link_with : [libpulsecore],
34  dependencies : [ltdl_dep, cap_dep, dbus_dep, libsystemd_dep, dl_dep, libintl_dep, platform_dep, platform_socket_dep, libpulsecommon_dep, libpulse_dep],
35  c_args : pa_c_args,
36)
37
38if x11_dep.found()
39  conf = configuration_data()
40  conf.set('PACTL_BINARY', join_paths(bindir, 'pactl'))
41
42  configure_file(
43    input : 'start-pulseaudio-x11.in',
44    output : 'start-pulseaudio-x11',
45    configuration : conf,
46    install : true,
47    install_dir : bindir,
48  )
49
50  configure_file(
51    input : 'start-pulseaudio-x11.in',
52    output : '00-pulseaudio-x11',
53    configuration : conf,
54    install : true,
55    install_dir : join_paths(sysconfdir, 'xdg', 'Xwayland-session.d'),
56  )
57
58  desktop_file = i18n.merge_file(
59    input : 'pulseaudio.desktop.in',
60    output : 'pulseaudio.desktop',
61    po_dir : po_dir,
62    type : 'desktop',
63    install : true,
64    install_dir : join_paths(sysconfdir, 'xdg', 'autostart'),
65  )
66
67  desktop_utils = find_program('desktop-file-validate', required: false)
68  if desktop_utils.found()
69    test('Validate desktop file', desktop_utils,
70      args: [ desktop_file ],
71    )
72  endif
73endif
74
75# Configuration files
76
77m4 = find_program('m4', required: true)
78
79daemon_conf = configuration_data()
80daemon_conf.merge_from(cdata)
81daemon_conf.set('PA_DEFAULT_CONFIG_DIR', cdata.get_unquoted('PA_DEFAULT_CONFIG_DIR'))
82
83daemon_template_file = configure_file(
84  input : 'daemon.conf.in',
85  output : 'daemon.conf.tmp',
86  configuration : daemon_conf,
87)
88
89custom_target('daemon.conf',
90  input : daemon_template_file,
91  output : 'daemon.conf',
92  capture : true,
93  command : [m4, '@INPUT@'],
94  build_by_default : true,
95  install : true,
96  install_dir : pulsesysconfdir,
97)
98
99default_conf = configuration_data()
100default_conf.merge_from(cdata)
101default_conf.set('PA_BINARY', cdata.get_unquoted('PA_BINARY'))
102default_conf.set('PA_SOEXT', cdata.get_unquoted('PA_SOEXT'))
103default_conf.set10('HAVE_AF_UNIX', cc.has_header('sys/un.h') ? true : cc.has_header('winsock2.h'))
104default_conf.set10('OS_IS_WIN32', host_machine.system() == 'windows')
105default_conf.set10('HAVE_MKFIFO', cc.has_function('mkfifo'))
106
107default_template_file = configure_file(
108  input : 'default.pa.in',
109  output : 'default.pa.tmp',
110  configuration : default_conf,
111)
112
113custom_target('default.pa',
114  input : default_template_file,
115  output : 'default.pa',
116  capture : true,
117  command : [m4, '@INPUT@'],
118  build_by_default : true,
119  install : true,
120  install_dir : pulsesysconfdir,
121)
122
123system_conf = configuration_data()
124system_conf.merge_from(default_conf)
125
126system_template_file = configure_file(
127  input : 'system.pa.in',
128  output : 'system.pa.tmp',
129  configuration : system_conf,
130)
131
132custom_target('system.pa',
133  input : system_template_file,
134  output : 'system.pa',
135  capture : true,
136  command : [m4, '@INPUT@'],
137  build_by_default : true,
138  install : true,
139  install_dir : pulsesysconfdir,
140)
141
142if dbus_dep.found()
143  install_data('pulseaudio-system.conf',
144    install_dir : join_paths(sysconfdir, 'dbus-1', 'system.d')
145  )
146endif
147
148if systemd_dep.found()
149  sd_user_service_conf = configuration_data()
150  sd_user_service_conf.set('PA_BINARY', cdata.get_unquoted('PA_BINARY'))
151  sd_user_service_conf.set('PACTL_BINARY', join_paths(bindir, 'pactl'))
152  sd_user_service_conf.set('PA_X11_BINARY', join_paths(bindir, 'start-pulseaudio-x11'))
153
154  sd_user_service_file = configure_file(
155    input : 'systemd/user/pulseaudio.service.in',
156    output : 'pulseaudio.service',
157    configuration : sd_user_service_conf,
158    install : true,
159    install_dir : systemduserunitdir,
160  )
161
162  sd_user_x11_service_file = configure_file(
163    input : 'systemd/user/pulseaudio-x11.service.in',
164    output : 'pulseaudio-x11.service',
165    configuration : sd_user_service_conf,
166    install : true,
167    install_dir : systemduserunitdir,
168  )
169
170  install_data('systemd/user/pulseaudio.socket',
171    install_dir: systemduserunitdir,
172  )
173endif
174