File: meson.build

package info (click to toggle)
malcontent 0.13.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,756 kB
  • sloc: ansic: 7,414; python: 418; xml: 377; sh: 36; makefile: 14
file content (102 lines) | stat: -rw-r--r-- 3,068 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
libmalcontent_ui_api_version = '1'
libmalcontent_ui_api_name = 'malcontent-ui-' + libmalcontent_ui_api_version

if not cc.has_function('atexit')
  error('atexit() needed for generated GResource files')
endif

resources = gnome.compile_resources(
  'resources',
  'malcontent-ui.gresource.xml',
  source_dir: meson.current_source_dir(),
)

libmalcontent_ui_sources = [
  'restrict-applications-dialog.c',
  'restrict-applications-selector.c',
  'user-controls.c',
]
libmalcontent_ui_headers = [
  'malcontent-ui.h',
  'restrict-applications-dialog.h',
  'restrict-applications-selector.h',
  'user-controls.h',
]

libmalcontent_ui_public_deps = [
  dependency('accountsservice', version: '>= 0.6.39'),
  dependency('gio-2.0', version: '>= 2.44'),
  dependency('glib-2.0', version: '>= 2.54.2'),
  dependency('gobject-2.0', version: '>= 2.54'),
  gtk_dep,
  libadwaita_dep,
  libmalcontent_dep,
]
libmalcontent_ui_private_deps = [
  dependency('appstream', version: '>= 0.12.10'),
  dependency('flatpak'),
]

# FIXME: Would be good to use subdir here: https://github.com/mesonbuild/meson/issues/2969
libmalcontent_ui_include_subdir = join_paths(libmalcontent_ui_api_name, 'libmalcontent-ui')

libmalcontent_ui = library(libmalcontent_ui_api_name,
  libmalcontent_ui_sources + resources + libmalcontent_ui_headers,
  dependencies: libmalcontent_ui_public_deps + libmalcontent_ui_private_deps,
  include_directories: root_inc,
  install: true,
  version: meson.project_version(),
  soversion: libmalcontent_ui_api_version,
)
libmalcontent_ui_dep = declare_dependency(
  link_with: libmalcontent_ui,
  include_directories: root_inc,
)

# Public library bits.
install_headers(libmalcontent_ui_headers,
  subdir: libmalcontent_ui_include_subdir,
)

pkgconfig.generate(libmalcontent_ui,
  subdirs: libmalcontent_ui_api_name,
  version: meson.project_version(),
  name: 'libmalcontent-ui',
  filebase: libmalcontent_ui_api_name,
  description: 'Library providing widgets for parental control settings.',
  libraries: libmalcontent_ui_public_deps,
  libraries_private: libmalcontent_ui_private_deps,
)

libmalcontent_ui_gir = gnome.generate_gir(libmalcontent_ui,
  sources: libmalcontent_ui_sources + libmalcontent_ui_headers,
  nsversion: libmalcontent_ui_api_version,
  namespace: 'MalcontentUi',
  symbol_prefix: 'mct_',
  identifier_prefix: 'Mct',
  export_packages: 'libmalcontent-ui',
  includes: ['AccountsService-1.0', 'Gio-2.0', 'GObject-2.0', 'Gtk-4.0', 'Adw-1', libmalcontent_gir[0]],
  install: true,
  dependencies: libmalcontent_ui_dep,
)

xmllint = find_program('xmllint', required: false)
if xmllint.found()
  gtk_prefix = gtk_dep.get_variable(pkgconfig: 'prefix')
  test(
    'validate-ui', xmllint,
    args: [
      '--nonet', '--noblanks', '--noout',
      '--relaxng', join_paths(gtk_prefix, 'share', 'gtk-4.0', 'gtk4builder.rng'),
      files(
        'restrict-applications-dialog.ui',
        'restrict-applications-selector.ui',
        'user-controls.ui',
      ),
    ],
    suite: ['libmalcontent-ui'],
  )
endif

# FIXME: Add tests
#subdir('tests')