summaryrefslogtreecommitdiffstats
path: root/data/misc/meson.build
blob: f7f1c27f663836b9b672c3fdb63012849ac02748 (plain) (blame)
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
appdir = join_paths(get_option('datadir'), 'applications')
metainfodir = join_paths(get_option('datadir'), 'metainfo')
desktop_utils = find_program('desktop-file-validate', required: false)

if get_option('with-gtk')
  if get_option('with-appdata')
    hexchat_appdata = i18n.merge_file(
      input: 'io.github.Hexchat.appdata.xml.in',
      output: 'io.github.Hexchat.appdata.xml',
      po_dir: '../../po',
      install: true,
      install_dir: metainfodir
    )

    appstream_util = find_program('appstream-util', required: false)
    if appstream_util.found()
      test('Validate io.github.Hexchat.appdata.xml', appstream_util,
        args: ['validate-relax', hexchat_appdata]
      )
    endif
  endif

  desktop_conf = configuration_data()
  if get_option('with-dbus')
    desktop_conf.set('exec_command', 'hexchat --existing %U')
  else
    desktop_conf.set('exec_command', 'hexchat %U')
  endif

  desktop_file = configure_file(
    input: 'io.github.Hexchat.desktop.in.in',
    output: 'io.github.Hexchat.desktop.in',
    configuration: desktop_conf
  )

  hexchat_desktop = i18n.merge_file(
    input: desktop_file,
    output: 'io.github.Hexchat.desktop',
    po_dir: '../../po',
    type: 'desktop',
    install: true,
    install_dir: appdir
  )

  if desktop_utils.found()
    test('Validate io.github.Hexchat.desktop', desktop_utils,
      args: [hexchat_desktop]
    )
  endif
endif

if get_option('with-theme-manager')
  htm_desktop = i18n.merge_file(
    input: 'io.github.Hexchat.ThemeManager.desktop.in',
    output: 'io.github.Hexchat.ThemeManager.desktop',
    po_dir: '../../po',
    type: 'desktop',
    install: true,
    install_dir: appdir
  )

  if desktop_utils.found()
    test('Validate io.github.Hexchat.ThemeManager.desktop', desktop_utils,
      args: [htm_desktop]
    )
  endif

  install_data('io.github.Hexchat.ThemeManager.xml',
    install_dir: join_paths(get_option('datadir'), 'mime/packages')
  )
endif

if get_option('with-plugin') and get_option('with-appdata')
  plugin_metainfo = []

  # FIXME: These should all get translated somewhere
  if get_option('with-checksum')
    plugin_metainfo += [
      ['Checksum', 'Calculates a checksum for all sent and recieved DCC files', 'MIT']
    ]
  endif

  if get_option('with-fishlim')
    plugin_metainfo += [
      ['Fishlim', 'Allows setting a key for encrypted conversations', 'MIT AND GPL-2.0+']
    ]
  endif

  if get_option('with-lua') != 'false'
    plugin_metainfo += [
      ['Lua', 'Provides a scripting interface in Lua', 'MIT']
    ]
  endif

  if get_option('with-perl') != 'false'
    plugin_metainfo += [
      ['Perl', 'Provides a scripting interface in Perl', 'GPL-2.0+']
    ]
  endif

  if get_option('with-python') != 'false'
    plugin_metainfo += [
      ['Python', 'Provides a scripting interface in Python', 'GPL-2.0+']
    ]
  endif

  if get_option('with-sysinfo')
    plugin_metainfo += [
      ['Sysinfo', 'Adds command to display system information', 'GPL-2.0+']
    ]
  endif

  foreach metainfo : plugin_metainfo
    name = metainfo[0]
    conf = configuration_data()
    conf.set('NAME', name)
    conf.set('SUMMARY', metainfo[1])
    conf.set('LICENSE', metainfo[2])

    configure_file(
      input: 'io.github.Hexchat.Plugin.metainfo.xml.in',
      output: 'io.github.Hexchat.Plugin.@0@.metainfo.xml'.format(name),
      configuration: conf,
      install_dir: get_option('install-plugin-metainfo') ? metainfodir : '',
    )
  endforeach
endif