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 (116 lines) | stat: -rw-r--r-- 2,946 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
109
110
111
112
113
114
115
116
# Shared library and language bindings

libfeedback_libdir = get_option('libdir')
libfeedback_header_dir = get_option('includedir') / libname
libfeedback_link_args = []
libfeedback_symbols_file = 'libfeedback.syms'

# Check linker flags
ld_version_script_arg = '-Wl,--version-script,@0@'.format(
  meson.current_source_dir() / libfeedback_symbols_file,
)
if cc.links(
  'int main() { return 0; }',
  args: ld_version_script_arg,
  name: 'ld_supports_version_script',
)
  libfeedback_link_args += [ld_version_script_arg]
endif

lfb_enum_headers = files('lfb-event.h')
lfb_enum_sources = gnome.mkenums_simple(
  'lfb-enums',
  sources: lfb_enum_headers,
  install_header: true,
  install_dir: libfeedback_header_dir,
)

libfeedback_headers = ['libfeedback.h', 'lfb-event.h', 'lfb-main.h']

libfeedback_sources = [
  generated_dbus_sources,
  lfb_enum_sources,
  libfeedback_headers,
  'lfb-event.c',
  'lfb-main.c',
]

libfeedback_deps = [gio, gio_unix, glib]

libfeedback_c_args = [
  '-DG_LOG_DOMAIN="libfeedback"',
  '-DLIBFEEDBACK_COMPILATION',
  '-DLIBFEEDBACK_USE_UNSTABLE_API',
]

libfeedback = library(
  'feedback-' + apiversion,
  libfeedback_sources,
  soversion: 0,
  c_args: libfeedback_c_args,
  dependencies: libfeedback_deps,
  link_args: libfeedback_link_args,
  install: true,
  install_dir: libfeedback_libdir,
)

libfeedback_inc = include_directories('.')
libfeedback_dep = declare_dependency(
  sources: [generated_dbus_sources, lfb_enum_sources[1]],
  link_with: libfeedback,
  dependencies: libfeedback_deps,
  include_directories: libfeedback_inc,
)
install_headers(libfeedback_headers, subdir: libname)

pkgconfig = import('pkgconfig')

pkgconfig.generate(
  libraries: [libfeedback],
  subdirs: libname,
  version: meson.project_version(),
  name: 'Feedback',
  filebase: 'libfeedback-@0@'.format(apiversion),
  description: 'Cross desktop feedback library',
  requires: 'gio-2.0',
  install_dir: join_paths(libfeedback_libdir, 'pkgconfig'),
)

if introspection
  libfeedback_gir_extra_args = [
    '-I' + dbus_header_dir,
    '--c-include=libfeedback.h',
    '--quiet',
    '-DLIBFEEDBACK_COMPILATION',
    '-DLIBFEEDBACK_USE_UNSTABLE_API',
    '--warn-all',
  ]

  libfeedback_gir = gnome.generate_gir(
    libfeedback,
    sources: libfeedback_sources,
    nsversion: apiversion,
    namespace: 'Lfb',
    export_packages: 'libfeedback-@0@'.format(apiversion),
    symbol_prefix: 'lfb',
    identifier_prefix: 'Lfb',
    link_with: libfeedback,
    includes: ['Gio-2.0'],
    install: true,
    install_dir_gir: girdir,
    install_dir_typelib: typelibdir,
    extra_args: libfeedback_gir_extra_args,
    fatal_warnings: true,
  )

  if get_option('vapi')
    libfeedback_vapi = gnome.generate_vapi(
      'libfeedback-' + apiversion,
      sources: libfeedback_gir[0],
      packages: ['gio-2.0'],
      install: true,
      install_dir: vapidir,
      metadata_dirs: [meson.current_source_dir()],
    )
  endif
endif