File: meson.build

package info (click to toggle)
feedbackd 0.8.8-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,068 kB
  • sloc: ansic: 7,926; xml: 97; makefile: 31; sh: 27; python: 8
file content (108 lines) | stat: -rw-r--r-- 3,026 bytes parent folder | download
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
# DBus server interface
prefix = 'org.sigxcpu.'
namespace = 'LfbGdbus'

generated_dbus_sources = []

dbus_interfaces = ['org.sigxcpu.Feedback.xml', 'org.sigxcpu.Feedback.Haptic.xml']

generated_dbus_sources += gnome.gdbus_codegen(
  'lfb-gdbus',
  sources: dbus_interfaces,
  object_manager: false,
  docbook: 'libfeedback',
  interface_prefix: prefix,
  install_header: true,
  install_dir: join_paths(get_option('includedir'), libname),
  namespace: namespace,
)

dbus_header_dir = meson.current_build_dir()
dbus_inc = include_directories('.')
install_data(dbus_interfaces, install_dir: ifacedir)

schemas = ['org.sigxcpu.feedbackd.gschema.xml']
compiled_schemas = gnome.compile_schemas(depend_files: schemas, build_by_default: true)

compile_schemas = find_program('glib-compile-schemas', required: false)
if compile_schemas.found()
  test(
    'Validate schema file',
    compile_schemas,
    args: ['--strict', '--dry-run', meson.current_source_dir()],
  )
endif

install_data(schemas, install_dir: 'share/glib-2.0/schemas')


if get_option('daemon')

  service_data = configuration_data()
  service_data.set('libexecdir', libexecdir)
  service_file = 'org.sigxcpu.Feedback.service'

  configure_file(
    input: service_file + '.in',
    output: service_file,
    configuration: service_data,
    install: true,
    install_dir: servicedir,
  )

  theme_json = ['default.json']
  install_data(theme_json, install_dir: feedbackd_theme_dir)

  if json_glib_validate.found()
    jsons = []
    foreach theme : theme_json
      jsons += (join_paths(meson.current_source_dir(), theme))
    endforeach
    custom_target(
      'validate-json',
      build_by_default: true,
      input: theme_json,
      output: 'json_validate_stamp',
      command: [json_glib_validate.full_path()] + jsons,
    )
  endif

  if get_option('udev')
    install_data('72-feedbackd.rules', install_dir: udevdir)
  endif

  systemd_user_unit_dir = get_option('systemd_user_unit_dir')
  systemd_dep = dependency('systemd', required: false)
  if systemd_user_unit_dir == ''
    if systemd_dep.found()
      systemd_user_unit_dir = systemd_dep.get_variable('systemd_user_unit_dir')
    else
      systemd_user_unit_dir = prefix / libdir / 'systemd' / 'user'
    endif
  endif

  # Alert slider Systemd user service
  alert_slider_unit = 'fbd-alert-slider.service'
  configure_file(
    input: alert_slider_unit + '.in',
    output: alert_slider_unit,
    configuration: service_data,
    install: true,
    install_dir: systemd_user_unit_dir,
  )

  systemd_sysusers_dir = get_option('systemd_sysusers_dir')
  if systemd_sysusers_dir == ''
    if systemd_dep.found()
      systemd_sysusers_dir = systemd_dep.get_variable('sysusersdir')
    else
      systemd_sysusers_dir = prefix / libdir / 'sysusers.d'
    endif
  endif

  install_data('feedbackd.sysusers', rename: 'feedbackd.conf', install_dir: systemd_sysusers_dir)

  if get_option('media-roles')
    install_data('media-role-nodes.conf', install_dir: wireplumberdir)
  endif
endif  # daemon