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
|