build-sys: meson: Merge system_conf config data from default_conf
[platform/upstream/pulseaudio.git] / src / daemon / meson.build
index 4355597..e19b290 100644 (file)
@@ -22,13 +22,152 @@ if dbus_dep.found()
   pulseaudio_headers += 'server-lookup.h'
 endif
 
-# FIXME: man pages, dependencies
+# FIXME: dependencies
 executable('pulseaudio',
   pulseaudio_sources,
   pulseaudio_headers,
   install: true,
+  install_rpath : privlibdir,
   include_directories : [configinc, topinc],
+  link_args : ['-ffast-math'],
   link_with : [libpulsecore, libpulsecommon, libpulse],
-  dependencies : [ltdl_dep, cap_dep, dbus_dep, systemd_dep],
+  dependencies : [ltdl_dep, cap_dep, dbus_dep, libsystemd_dep, dl_dep, libintl_dep, platform_dep, platform_socket_dep],
   c_args : pa_c_args,
 )
+
+if x11_dep.found()
+  conf = configuration_data()
+  conf.set('PACTL_BINARY', join_paths(bindir, 'pactl'))
+
+  configure_file(
+    input : 'start-pulseaudio-x11.in',
+    output : 'start-pulseaudio-x11',
+    configuration : conf,
+    install : true,
+    install_dir : bindir,
+  )
+
+  configure_file(
+    input : 'start-pulseaudio-x11.in',
+    output : '00-pulseaudio-x11',
+    configuration : conf,
+    install : true,
+    install_dir : join_paths(sysconfdir, 'xdg', 'Xwayland-session.d'),
+  )
+
+  desktop_file = i18n.merge_file(
+    input : 'pulseaudio.desktop.in',
+    output : 'pulseaudio.desktop',
+    po_dir : po_dir,
+    type : 'desktop',
+    install : true,
+    install_dir : join_paths(sysconfdir, 'xdg', 'autostart'),
+  )
+
+  desktop_utils = find_program('desktop-file-validate', required: false)
+  if desktop_utils.found()
+    test('Validate desktop file', desktop_utils,
+      args: [ desktop_file ],
+    )
+  endif
+endif
+
+# Configuration files
+
+m4 = find_program('m4', required: true)
+
+daemon_conf = configuration_data()
+daemon_conf.merge_from(cdata)
+daemon_conf.set('PA_DEFAULT_CONFIG_DIR', cdata.get_unquoted('PA_DEFAULT_CONFIG_DIR'))
+
+daemon_template_file = configure_file(
+  input : 'daemon.conf.in',
+  output : 'daemon.conf.tmp',
+  configuration : daemon_conf,
+)
+
+custom_target('daemon.conf',
+  input : daemon_template_file,
+  output : 'daemon.conf',
+  capture : true,
+  command : [m4, '@INPUT@'],
+  build_by_default : true,
+  install : true,
+  install_dir : pulsesysconfdir,
+)
+
+default_conf = configuration_data()
+default_conf.merge_from(cdata)
+default_conf.set('PA_BINARY', cdata.get_unquoted('PA_BINARY'))
+default_conf.set('PA_SOEXT', cdata.get_unquoted('PA_SOEXT'))
+default_conf.set10('HAVE_AF_UNIX', cc.has_header('sys/un.h'))
+default_conf.set10('OS_IS_WIN32', host_machine.system() == 'windows')
+default_conf.set10('HAVE_MKFIFO', cc.has_function('mkfifo'))
+
+default_template_file = configure_file(
+  input : 'default.pa.in',
+  output : 'default.pa.tmp',
+  configuration : default_conf,
+)
+
+custom_target('default.pa',
+  input : default_template_file,
+  output : 'default.pa',
+  capture : true,
+  command : [m4, '@INPUT@'],
+  build_by_default : true,
+  install : true,
+  install_dir : pulsesysconfdir,
+)
+
+system_conf = configuration_data()
+system_conf.merge_from(default_conf)
+
+system_template_file = configure_file(
+  input : 'system.pa.in',
+  output : 'system.pa.tmp',
+  configuration : system_conf,
+)
+
+custom_target('system.pa',
+  input : system_template_file,
+  output : 'system.pa',
+  capture : true,
+  command : [m4, '@INPUT@'],
+  build_by_default : true,
+  install : true,
+  install_dir : pulsesysconfdir,
+)
+
+if dbus_dep.found()
+  install_data('pulseaudio-system.conf',
+    install_dir : join_paths(sysconfdir, 'dbus-1', 'system.d')
+  )
+endif
+
+if systemd_dep.found()
+  sd_user_service_conf = configuration_data()
+  sd_user_service_conf.set('PA_BINARY', cdata.get_unquoted('PA_BINARY'))
+  sd_user_service_conf.set('PACTL_BINARY', join_paths(bindir, 'pactl'))
+  sd_user_service_conf.set('PA_X11_BINARY', join_paths(bindir, 'start-pulseaudio-x11'))
+
+  sd_user_service_file = configure_file(
+    input : 'systemd/user/pulseaudio.service.in',
+    output : 'pulseaudio.service',
+    configuration : sd_user_service_conf,
+    install : true,
+    install_dir : systemduserunitdir,
+  )
+
+  sd_user_x11_service_file = configure_file(
+    input : 'systemd/user/pulseaudio-x11.service.in',
+    output : 'pulseaudio-x11.service',
+    configuration : sd_user_service_conf,
+    install : true,
+    install_dir : systemduserunitdir,
+  )
+
+  install_data('systemd/user/pulseaudio.socket',
+    install_dir: systemduserunitdir,
+  )
+endif