libmks/lib/meson.build
Christian Hergert 5e75216318 lib: stub internal listener skeleton
This is an org.qemu.Listener using the gdbus-codegen generated skeleton as
the parent type.

What will probably happen here, is that we create a MksPaintable which is
given to the listener to call internal API upon.

The paintable code will be a bit more complex than originally anticipated
in that we are going to need to do our own tessellation so that we get
damage regions which are not the whole widget. Very similar to what I did
in the GdkMacosTile for gdk/macos/.
2023-02-09 17:30:38 -08:00

106 lines
2.7 KiB
Meson

libmks_sources = [
'mks-init.c',
'mks-device.c',
'mks-keyboard.c',
'mks-mouse.c',
'mks-paintable.c',
'mks-screen.c',
'mks-screen-attributes.c',
'mks-session.c',
]
libmks_headers = [
'libmks.h',
'mks-device.h',
'mks-init.h',
'mks-keyboard.h',
'mks-mouse.h',
'mks-paintable.h',
'mks-screen.h',
'mks-screen-attributes.h',
'mks-session.h',
'mks-types.h',
]
libmks_enums = gnome.mkenums_simple('mks-enums',
sources: libmks_headers,
install_header: true,
install_dir: join_paths(get_option('libdir'), 'libmks-@0@'.format(api_version)),
identifier_prefix: 'Mks',
symbol_prefix: 'mks',
)
libmks_private_sources = [
'mks-paintable-listener.c',
'mks-read-only-list-model.c',
gnome.gdbus_codegen('mks-qemu',
autocleanup: 'all',
interface_prefix: 'org.qemu.Display1.',
namespace: 'MksQemu',
sources: 'dbus-display1.xml',
object_manager: true,
)
]
# Setup mks-version.h for version checking
version_split = meson.project_version().split('.')
version_conf = configuration_data()
version_conf.set('VERSION', meson.project_version())
version_conf.set('MAJOR_VERSION', version_split[0])
version_conf.set('MINOR_VERSION', version_split[1])
version_conf.set('MICRO_VERSION', version_split[2])
mks_version_h = configure_file(
input: 'mks-version.h.in',
output: 'mks-version.h',
configuration: version_conf,
install: true,
install_dir: join_paths(get_option('includedir'), 'libmks-@0@'.format(api_version))
)
libmks_generated_sources = [
libmks_enums,
mks_version_h,
]
libmks_deps = [
libgio_dep,
libgiounix_dep,
libgtk_dep,
]
libmks = shared_library('mks-' + api_version,
libmks_sources + libmks_generated_sources + libmks_private_sources,
dependencies: libmks_deps,
install: true,
)
libmks_dep = declare_dependency(
sources: libmks_generated_sources,
link_with: libmks,
dependencies: libmks_deps,
include_directories: include_directories('.'),
)
install_headers(libmks_headers, subdir: 'libmks-@0@'.format(api_version))
pkg.generate(
description: 'A shared library for Mouse, Keyboard, and Screen to Qemu',
libraries: libmks,
name: 'libmks',
filebase: 'libmks-' + api_version,
version: meson.project_version(),
subdirs: 'libmks-@0@'.format(api_version),
requires: ['gio-2.0', 'gio-unix-2.0', 'gtk4'],
install_dir: join_paths(get_option('libdir'), 'pkgconfig')
)
libmks_gir = gnome.generate_gir(libmks,
sources: libmks_sources + libmks_headers,
nsversion: api_version,
namespace: 'Mks',
symbol_prefix: 'mks',
identifier_prefix: 'Mks',
includes: ['Gio-2.0', 'Gtk-4.0'],
install: true,
)