summaryrefslogtreecommitdiff
path: root/src/backend/dbus/meson.build
blob: 107e401245b8f231c03891c0a5d521c458b6a9e4 (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
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_user_services_dir = join_paths(dbus_data_dir, 'services')
  dbus_system_services_dir = join_paths(dbus_data_dir, 'system-services')
  dbus_system_conf_dir = join_paths(dbus_data_dir, 'system.d')

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

  # D-Bus Interface
  install_data('org.libproxy.proxy.xml', install_dir : dbus_interfaces_dir)

  # D-Bus User Service
  user_service_data = configuration_data()
  user_service_data.set('LIBEXECDIR', join_paths(px_prefix, get_option('libexecdir')))
  configure_file(
    input: 'org.libproxy.proxy.service.in',
    output: 'org.libproxy.proxy.service',
    configuration: user_service_data,
    install: true,
    install_dir: dbus_user_services_dir
  )

  # D-Bus System Service
  system_service_data = configuration_data()
  system_service_data.set('LIBEXECDIR', join_paths(px_prefix, get_option('libexecdir')))
  system_service_data.set('USER', get_option('dbus-system-user'))
  dbus_system_service = configure_file(
    input: 'org.libproxy.proxy-system.service.in',
    output: 'org.libproxy.proxy-system.service',
    configuration: system_service_data
  )
  install_data(dbus_system_service, rename : 'org.libproxy.proxy.service', install_dir : dbus_system_services_dir)

  dbus_config_data = configuration_data()
  dbus_config_data.set('daemon_user', get_option('dbus-system-user'))
  configure_file(
    input: 'org.libproxy.proxy.conf.in',
    output: 'org.libproxy.proxy.conf',
    configuration: dbus_config_data,
    install: true,
    install_dir: dbus_system_conf_dir
  )
endif