Originally raised in cellbroadcast, but applies here as well (because cbd yoinked large parts of meson.build!) Signed-off-by: Evangelos Ribeiro Tzaras <devrtz@fortysixandtwo.eu>
117 lines
2.9 KiB
Meson
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: 'GNOME 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
|