Files
Guido Günther 6244a1203e libfeedback: Indicate that the library is cross desktop
The only non generic thing is that we pick up the sound
scheme from GNOME when available but we'd happily extend
that to other DEs.

Signed-off-by: Guido Günther <agx@sigxcpu.org>
2025-06-25 19:43:08 +02:00

117 lines
2.9 KiB
Meson

# 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