summaryrefslogtreecommitdiff
path: root/src/backend/dbus/meson.build
blob: eb64fcd394328a3e5f9bd200c66e28406858de66 (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
if build_dbus
  gdbus_codegen = find_program('gdbus-codegen')

  unitdir = ''
  dbus_data_dir = join_paths(get_option('prefix'), get_option('datadir'), 'dbus-1')
  dbus_interfaces_dir = join_paths(dbus_data_dir, 'interfaces')
  dbus_services_dir = join_paths(dbus_data_dir, 'services')
  dbus_sysconf_dir = join_paths(dbus_data_dir, 'session.d')

  systemd = dependency('systemd', required: false)
  if systemd.found()
    unitdir = systemd.get_variable(pkgconfig: 'systemduserunitdir')
  endif

  px_interface = [
    'org.libproxy.proxy.xml'
  ]

  px_interface_h = custom_target(
    'px-interface.h',
    input: px_interface,
    output: ['px-interface.h'],
    command: [
      gdbus_codegen,
      '--interface-info-header',
      '--output', '@OUTPUT@',
      '@INPUT@'
    ]
  )

  px_interface_c = custom_target(
    'libproxy-iface.c',
    input: px_interface,
    output: ['px-interface.c'],
    command: [
      gdbus_codegen,
      '--interface-info-body',
      '--output', '@OUTPUT@',
      '@INPUT@'
    ],
  )

  proxyd_sources = [
    px_interface_c,
    px_interface_h,
    'dbus.c',
  ]

  proxyd_deps = [
    px_backend_dep
  ]

  executable(
    'proxyd',
    proxyd_sources,
    c_args: px_backend_c_args,
    dependencies: proxyd_deps,
    install_dir: join_paths(px_prefix, get_option('libexecdir')),
    install: true,
  )

  service_data = configuration_data()
  service_data.set('LIBEXECDIR', join_paths(px_prefix, get_option('libexecdir')))

  dbus_service = configure_file(
    input: 'org.libproxy.proxy.service.in',
    output: 'org.libproxy.proxy.service',
    configuration: service_data
  )

  install_data('org.libproxy.proxy.conf', install_dir : dbus_sysconf_dir)
  install_data(dbus_service, install_dir : dbus_services_dir)
  install_data('org.libproxy.proxy.xml', install_dir : dbus_interfaces_dir)

  service_data = configuration_data()
  service_data.set('LIBEXECDIR', join_paths(px_prefix, get_option('libexecdir')))

  service = configure_file(
    input: 'proxyd.service.in',
    output: 'proxyd.service',
    configuration: service_data
  )

  if unitdir != ''
    install_data(service, install_dir: unitdir)
  endif
endif