File: meson.build

package info (click to toggle)
papers 49.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 21,044 kB
  • sloc: ansic: 37,728; sh: 197; xml: 127; makefile: 113
file content (83 lines) | stat: -rw-r--r-- 2,470 bytes parent folder | download | duplicates (2)
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
backends_common_incs = [top_inc]
backends_common_deps = [libppsdocument_dep]
backends_common_cflags = [
  '-DPAPERS_COMPILATION',
]

foreach backend, backend_mime_types: backends
  backend_name = backend + 'document'
  backend_id = 'org.gnome.Papers.@0@Document'.format(backend.substring(0, 1).to_upper() + backend.substring(1))

  # Set default values, let each backend configure its own
  backend_sources = []
  backend_incs = backends_common_incs
  backend_deps = backends_common_deps
  backend_cflags = backends_common_cflags
  subdir(backend)

  shared_module(
    backend_name,
    sources: backend_sources,
    include_directories: backend_incs,
    dependencies: backend_deps,
    c_args: backend_cflags,
    gnu_symbol_visibility: 'hidden',
    install: true,
    install_dir: pps_backendsdir,
  )

  backend_mime_types_conf = configuration_data()
  backend_mime_types_conf.set(backend.to_upper() + '_MIME_TYPES', ';'.join(backend_mime_types))

  metainfo_mime_types = ''
  foreach type: backend_mime_types
    metainfo_mime_types += '\t<mediatype>@0@</mediatype>\n'.format(type)
  endforeach

  backend_mime_types_conf.set('METAINFO_@0@_MIME_TYPES'.format(backend.to_upper()), metainfo_mime_types)

  backend_desc = backend_id + '.papers-backend'

  backend_desc_in = configure_file(
    input: '@0@/@1@.desktop.in.in'.format(backend, backend_desc),
    output: backend_desc + '.desktop.in',
    configuration: backend_mime_types_conf,
  )

  i18n.merge_file(
    type: 'desktop',
    input: backend_desc_in,
    output: backend_desc,
    po_dir: po_dir,
    install: true,
    install_dir: pps_backendsdir,
    args: '--keyword=TypeDescription',
  )

  backend_metainfo = '@0@.metainfo.xml'.format(backend_id)
  i18n.merge_file(
    input: configure_file(
      input: '@0@/@1@.in.in'.format(backend, backend_metainfo),
      output: backend_metainfo + '.in',
      configuration: backend_mime_types_conf,
    ),
    output: backend_metainfo,
    po_dir: po_dir,
    install: true,
    install_dir: join_paths(pps_datadir, 'metainfo'),
  )

  if get_option('tests')
    if (appstreamcli.found())
      test('validate-@0@-metainfo'.format(backend_id),
           appstreamcli,
           args: ['validate', '--no-net', '--explain', backend_metainfo],
           workdir: meson.current_build_dir()
          )
    endif
  endif
endforeach

backend_env = environment()
backend_env.set('PPS_BACKENDS_DIR', meson.current_build_dir())
meson.add_devenv(backend_env)