mutter/clutter/clutter/meson.build
Carlos Garnacho 6de81b0513 evdev: Implement ClutterKeymap
Just move the minimal bits to this ClutterKeymapEvdev object. Much
of the functionality of a keymap is spread along ClutterSeatEvdev,
ClutterDeviceManagerEvdev and ClutterVirtualInputDevice. Future
refactors are due here.

Also, ideally keymaps are per-seat objects (at least keyboard state
is). We don't expose much info about seats altogether outside the
evdev device manager implementation. We just poke the main seat at
places, but eventually seats should be public.
2019-01-29 16:53:29 +01:00

659 lines
18 KiB
Meson

clutter_clutter_includedir = join_paths(clutter_includedir, 'clutter')
clutter_headers = [
'clutter.h',
'clutter-action.h',
'clutter-actor-meta.h',
'clutter-actor.h',
'clutter-align-constraint.h',
'clutter-animatable.h',
'clutter-autocleanups.h',
'clutter-backend.h',
'clutter-bind-constraint.h',
'clutter-binding-pool.h',
'clutter-bin-layout.h',
'clutter-blur-effect.h',
'clutter-box-layout.h',
'clutter-brightness-contrast-effect.h',
'clutter-cairo.h',
'clutter-canvas.h',
'clutter-child-meta.h',
'clutter-click-action.h',
'clutter-clone.h',
'clutter-color-static.h',
'clutter-color.h',
'clutter-colorize-effect.h',
'clutter-constraint.h',
'clutter-container.h',
'clutter-content.h',
'clutter-deform-effect.h',
'clutter-deprecated.h',
'clutter-desaturate-effect.h',
'clutter-device-manager.h',
'clutter-drag-action.h',
'clutter-drop-action.h',
'clutter-effect.h',
'clutter-enums.h',
'clutter-event.h',
'clutter-feature.h',
'clutter-fixed-layout.h',
'clutter-flow-layout.h',
'clutter-gesture-action.h',
'clutter-grid-layout.h',
'clutter-group.h',
'clutter-image.h',
'clutter-input-device.h',
'clutter-input-device-tool.h',
'clutter-input-focus.h',
'clutter-input-method.h',
'clutter-interval.h',
'clutter-keyframe-transition.h',
'clutter-keymap.h',
'clutter-keysyms.h',
'clutter-layout-manager.h',
'clutter-layout-meta.h',
'clutter-macros.h',
'clutter-main.h',
'clutter-mutter.h',
'clutter-offscreen-effect.h',
'clutter-page-turn-effect.h',
'clutter-paint-nodes.h',
'clutter-paint-node.h',
'clutter-pan-action.h',
'clutter-path-constraint.h',
'clutter-path.h',
'clutter-property-transition.h',
'clutter-rotate-action.h',
'clutter-script.h',
'clutter-scriptable.h',
'clutter-scroll-actor.h',
'clutter-settings.h',
'clutter-shader-effect.h',
'clutter-shader-types.h',
'clutter-swipe-action.h',
'clutter-snap-constraint.h',
'clutter-stage.h',
'clutter-stage-manager.h',
'clutter-tap-action.h',
'clutter-test-utils.h',
'clutter-texture.h',
'clutter-text.h',
'clutter-text-buffer.h',
'clutter-timeline.h',
'clutter-transition-group.h',
'clutter-transition.h',
'clutter-types.h',
'clutter-units.h',
'clutter-virtual-input-device.h',
'clutter-zoom-action.h',
]
clutter_sources = [
'clutter-action.c',
'clutter-actor-box.c',
'clutter-actor-meta.c',
'clutter-actor.c',
'clutter-align-constraint.c',
'clutter-animatable.c',
'clutter-backend.c',
'clutter-base-types.c',
'clutter-bezier.c',
'clutter-bind-constraint.c',
'clutter-binding-pool.c',
'clutter-bin-layout.c',
'clutter-blur-effect.c',
'clutter-box-layout.c',
'clutter-brightness-contrast-effect.c',
'clutter-cairo.c',
'clutter-canvas.c',
'clutter-child-meta.c',
'clutter-click-action.c',
'clutter-clone.c',
'clutter-color.c',
'clutter-colorize-effect.c',
'clutter-constraint.c',
'clutter-container.c',
'clutter-content.c',
'clutter-deform-effect.c',
'clutter-desaturate-effect.c',
'clutter-device-manager.c',
'clutter-drag-action.c',
'clutter-drop-action.c',
'clutter-effect.c',
'clutter-event.c',
'clutter-feature.c',
'clutter-fixed-layout.c',
'clutter-flatten-effect.c',
'clutter-flow-layout.c',
'clutter-gesture-action.c',
'clutter-grid-layout.c',
'clutter-image.c',
'clutter-input-device.c',
'clutter-input-device-tool.c',
'clutter-input-focus.c',
'clutter-input-method.c',
'clutter-virtual-input-device.c',
'clutter-interval.c',
'clutter-keyframe-transition.c',
'clutter-keymap.c',
'clutter-keysyms-table.c',
'clutter-layout-manager.c',
'clutter-layout-meta.c',
'clutter-main.c',
'clutter-master-clock.c',
'clutter-master-clock-default.c',
'clutter-offscreen-effect.c',
'clutter-page-turn-effect.c',
'clutter-paint-nodes.c',
'clutter-paint-node.c',
'clutter-pan-action.c',
'clutter-path-constraint.c',
'clutter-path.c',
'clutter-property-transition.c',
'clutter-rotate-action.c',
'clutter-script.c',
'clutter-script-parser.c',
'clutter-scriptable.c',
'clutter-scroll-actor.c',
'clutter-settings.c',
'clutter-shader-effect.c',
'clutter-shader-types.c',
'clutter-swipe-action.c',
'clutter-snap-constraint.c',
'clutter-stage.c',
'clutter-stage-manager.c',
'clutter-stage-window.c',
'clutter-tap-action.c',
'clutter-test-utils.c',
'clutter-text.c',
'clutter-text-buffer.c',
'clutter-transition-group.c',
'clutter-transition.c',
'clutter-timeline.c',
'clutter-units.c',
'clutter-util.c',
'clutter-paint-volume.c',
'clutter-zoom-action.c',
]
clutter_private_headers = [
'clutter-actor-meta-private.h',
'clutter-actor-private.h',
'clutter-backend-private.h',
'clutter-bezier.h',
'clutter-constraint-private.h',
'clutter-content-private.h',
'clutter-debug.h',
'clutter-device-manager-private.h',
'clutter-easing.h',
'clutter-effect-private.h',
'clutter-event-translator.h',
'clutter-event-private.h',
'clutter-flatten-effect.h',
'clutter-gesture-action-private.h',
'clutter-id-pool.h',
'clutter-input-focus-private.h',
'clutter-input-method-private.h',
'clutter-master-clock.h',
'clutter-master-clock-default.h',
'clutter-offscreen-effect-private.h',
'clutter-paint-node-private.h',
'clutter-paint-volume-private.h',
'clutter-private.h',
'clutter-script-private.h',
'clutter-settings-private.h',
'clutter-stage-manager-private.h',
'clutter-stage-private.h',
'clutter-stage-view.h',
'clutter-stage-window.h',
]
clutter_nonintrospected_sources = [
'clutter-easing.c',
'clutter-event-translator.c',
'clutter-id-pool.c',
'clutter-stage-view.c',
]
clutter_deprecated_headers = [
'deprecated/clutter-actor.h',
'deprecated/clutter-alpha.h',
'deprecated/clutter-animatable.h',
'deprecated/clutter-animation.h',
'deprecated/clutter-animator.h',
'deprecated/clutter-backend.h',
'deprecated/clutter-behaviour.h',
'deprecated/clutter-behaviour-depth.h',
'deprecated/clutter-behaviour-ellipse.h',
'deprecated/clutter-behaviour-opacity.h',
'deprecated/clutter-behaviour-path.h',
'deprecated/clutter-behaviour-rotate.h',
'deprecated/clutter-behaviour-scale.h',
'deprecated/clutter-bin-layout.h',
'deprecated/clutter-box.h',
'deprecated/clutter-cairo-texture.h',
'deprecated/clutter-container.h',
'deprecated/clutter-frame-source.h',
'deprecated/clutter-group.h',
'deprecated/clutter-input-device.h',
'deprecated/clutter-keysyms.h',
'deprecated/clutter-list-model.h',
'deprecated/clutter-main.h',
'deprecated/clutter-model.h',
'deprecated/clutter-rectangle.h',
'deprecated/clutter-score.h',
'deprecated/clutter-shader.h',
'deprecated/clutter-stage-manager.h',
'deprecated/clutter-stage.h',
'deprecated/clutter-state.h',
'deprecated/clutter-table-layout.h',
'deprecated/clutter-texture.h',
'deprecated/clutter-timeline.h',
'deprecated/clutter-timeout-pool.h',
'deprecated/clutter-util.h',
]
clutter_deprecated_sources = [
'deprecated/clutter-actor-deprecated.c',
'deprecated/clutter-alpha.c',
'deprecated/clutter-animation.c',
'deprecated/clutter-animator.c',
'deprecated/clutter-behaviour.c',
'deprecated/clutter-behaviour-depth.c',
'deprecated/clutter-behaviour-ellipse.c',
'deprecated/clutter-behaviour-opacity.c',
'deprecated/clutter-behaviour-path.c',
'deprecated/clutter-behaviour-rotate.c',
'deprecated/clutter-behaviour-scale.c',
'deprecated/clutter-box.c',
'deprecated/clutter-cairo-texture.c',
'deprecated/clutter-frame-source.c',
'deprecated/clutter-group.c',
'deprecated/clutter-input-device-deprecated.c',
'deprecated/clutter-layout-manager-deprecated.c',
'deprecated/clutter-list-model.c',
'deprecated/clutter-model.c',
'deprecated/clutter-rectangle.c',
'deprecated/clutter-score.c',
'deprecated/clutter-shader.c',
'deprecated/clutter-state.c',
'deprecated/clutter-table-layout.c',
'deprecated/clutter-texture.c',
'deprecated/clutter-timeout-pool.c',
]
clutter_deprecated_private_headers = [
'deprecated/clutter-model-private.h',
'deprecated/clutter-timeout-interval.h',
]
clutter_deprecated_nonintrospected_sources = [
'deprecated/clutter-timeout-interval.c',
]
clutter_backend_sources = []
clutter_backend_nonintrospected_sources = [
'cogl/clutter-stage-cogl.c',
]
clutter_backend_headers = []
clutter_backend_private_headers = [
'cogl/clutter-stage-cogl.h',
]
if have_x11
clutter_x11_sources = [
'x11/clutter-backend-x11.c',
'x11/clutter-device-manager-core-x11.c',
'x11/clutter-device-manager-xi2.c',
'x11/clutter-event-x11.c',
'x11/clutter-input-device-core-x11.c',
'x11/clutter-input-device-tool-xi2.c',
'x11/clutter-input-device-xi2.c',
'x11/clutter-keymap-x11.c',
'x11/clutter-stage-x11.c',
'x11/clutter-virtual-input-device-x11.c',
'x11/clutter-x11-texture-pixmap.c',
]
clutter_backend_sources += clutter_x11_sources
clutter_x11_nonintrospected_sources = [
'x11/clutter-xkb-a11y-x11.c',
]
clutter_backend_nonintrospected_sources += clutter_x11_nonintrospected_sources
clutter_x11_headers = [
'x11/clutter-x11.h',
'x11/clutter-x11-texture-pixmap.h',
]
clutter_backend_headers += clutter_x11_headers
clutter_x11_private_headers = [
'x11/clutter-backend-x11.h',
'x11/clutter-device-manager-core-x11.h',
'x11/clutter-device-manager-xi2.h',
'x11/clutter-input-device-core-x11.h',
'x11/clutter-input-device-tool-xi2.h',
'x11/clutter-input-device-xi2.h',
'x11/clutter-keymap-x11.h',
'x11/clutter-settings-x11.h',
'x11/clutter-stage-x11.h',
'x11/clutter-virtual-input-device-x11.h',
'x11/clutter-xkb-a11y-x11.h',
]
clutter_backend_private_headers += clutter_x11_private_headers
clutter_x11_nonintrospected_sources = [
'x11/xsettings/xsettings-client.c',
'x11/xsettings/xsettings-client.h',
'x11/xsettings/xsettings-common.c',
'x11/xsettings/xsettings-common.h',
]
clutter_backend_nonintrospected_sources += clutter_x11_nonintrospected_sources
endif
if have_native_backend
clutter_native_nonintrospected_sources = [
'egl/clutter-backend-eglnative.c',
'evdev/clutter-device-manager-evdev.c',
'evdev/clutter-event-evdev.c',
'evdev/clutter-input-device-evdev.c',
'evdev/clutter-input-device-tool-evdev.c',
'evdev/clutter-keymap-evdev.c',
'evdev/clutter-seat-evdev.c',
'evdev/clutter-virtual-input-device-evdev.c',
'evdev/clutter-xkb-utils.c',
]
clutter_backend_nonintrospected_sources += clutter_native_nonintrospected_sources
clutter_native_private_headers = [
'evdev/clutter-evdev.h',
'evdev/clutter-device-manager-evdev.h',
'evdev/clutter-input-device-evdev.h',
'evdev/clutter-input-device-tool-evdev.h',
'evdev/clutter-keymap-evdev.h',
'evdev/clutter-seat-evdev.h',
'evdev/clutter-virtual-input-device-evdev.h',
'evdev/clutter-xkb-utils.h',
]
clutter_backend_private_headers += clutter_native_private_headers
endif
if have_wayland
clutter_wayland_nonintrospected_sources = [
'wayland/clutter-wayland-surface.c',
]
clutter_backend_nonintrospected_sources += clutter_wayland_nonintrospected_sources
clutter_wayland_private_headers = [
'wayland/clutter-wayland-compositor.h',
'wayland/clutter-wayland-surface.h',
]
clutter_backend_private_headers += clutter_wayland_private_headers
endif
cally_headers = [
'cally/cally-actor.h',
'cally/cally-clone.h',
'cally/cally-factory.h',
'cally/cally-group.h',
'cally/cally.h',
'cally/cally-main.h',
'cally/cally-rectangle.h',
'cally/cally-root.h',
'cally/cally-stage.h',
'cally/cally-text.h',
'cally/cally-texture.h',
'cally/cally-util.h',
]
cally_sources = [
'cally/cally-actor.c',
'cally/cally.c',
'cally/cally-clone.c',
'cally/cally-group.c',
'cally/cally-rectangle.c',
'cally/cally-root.c',
'cally/cally-stage.c',
'cally/cally-text.c',
'cally/cally-texture.c',
'cally/cally-util.c',
]
cally_private_headers = [
'cally/cally-actor-private.h',
]
clutter_built_sources = []
clutter_built_headers = []
clutter_built_private_headers = []
cdata = configuration_data()
cdata.set_quoted('MUTTER_VERSION', meson.project_version())
cdata.set('CLUTTER_DRIVERS', '"*"')
cdata.set('HAVE_EVDEV', have_native_backend)
cdata.set('HAVE_LIBWACOM', have_libwacom)
cdata.set('HAVE_PANGO_FT2', have_pango_ft2)
clutter_build_config_h = configure_file(
input: 'clutter-build-config.h.meson',
output: 'clutter-build-config.h',
configuration: cdata,
install: false,
)
clutter_built_private_headers += clutter_build_config_h
clutter_config_defines = []
if have_wayland
clutter_config_defines += [
'#define CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT 1',
]
endif
if have_x11
clutter_config_defines += [
'#define CLUTTER_WINDOWING_X11 "x11"',
'#define CLUTTER_INPUT_X11 "x11"',
'#define CLUTTER_WINDOWING_GLX "glx"',
]
endif
if have_native_backend
clutter_config_defines += [
'#define CLUTTER_WINDOWING_EGL "eglnative"',
'#define CLUTTER_INPUT_EVDEV "evdev"',
]
endif
clutter_config_defines += [
'#define CLUTTER_INPUT_NULL "null"',
]
clutter_config_defines_string = ''
foreach clutter_config_define : clutter_config_defines
clutter_config_defines_string += clutter_config_define + '\n'
endforeach
cdata = configuration_data()
cdata.set('CLUTTER_CONFIG_DEFINES', clutter_config_defines_string)
clutter_config_h = configure_file(
input: 'clutter-config.h.in',
output: 'clutter-config.h',
configuration: cdata,
install: true,
install_dir: clutter_clutter_includedir,
)
clutter_built_headers += clutter_config_h
clutter_enum_types = gnome.mkenums('clutter-enum-types',
sources: [clutter_headers, clutter_deprecated_headers],
c_template: 'clutter-enum-types.c.in',
h_template: 'clutter-enum-types.h.in',
install_dir: clutter_clutter_includedir,
install_header: true,
)
clutter_built_sources += clutter_enum_types[0]
clutter_built_headers += clutter_enum_types[1]
clutter_marshal = gnome.genmarshal('clutter-marshal',
prefix: '_clutter_marshal',
sources: 'clutter-marshal.list',
valist_marshallers: true,
extra_args: ['--quiet'],
install_dir: clutter_clutter_includedir,
install_header: true,
)
clutter_built_sources += clutter_marshal[0]
clutter_built_headers += clutter_marshal[1]
libmutter_clutter_name = 'mutter-clutter-' + libmutter_api_version
libmutter_clutter = shared_library(libmutter_clutter_name,
sources: [
clutter_sources,
clutter_headers,
clutter_private_headers,
clutter_nonintrospected_sources,
clutter_deprecated_sources,
clutter_deprecated_nonintrospected_sources,
clutter_deprecated_headers,
clutter_deprecated_private_headers,
clutter_backend_sources,
clutter_backend_nonintrospected_sources,
clutter_backend_headers,
clutter_backend_private_headers,
clutter_built_sources,
clutter_built_headers,
cally_sources,
cally_headers,
cally_private_headers,
],
version: '0.0.0',
soversion: 0,
c_args: clutter_c_args,
include_directories: clutter_includes,
dependencies: [clutter_deps],
gnu_symbol_visibility: 'hidden',
link_with: [
libmutter_cogl,
libmutter_cogl_pango,
libmutter_cogl_path,
],
install_rpath: pkglibdir,
install_dir: pkglibdir,
install: true,
)
libmutter_clutter_dep = declare_dependency(
sources: [clutter_enum_types[1]],
link_with: libmutter_clutter,
)
if have_introspection
clutter_introspection_args = introspection_args + clutter_c_args
libmutter_clutter_gir = gnome.generate_gir(libmutter_clutter,
sources: [
clutter_built_sources,
clutter_built_headers,
clutter_sources,
clutter_headers,
clutter_deprecated_sources,
clutter_deprecated_headers,
],
nsversion: libmutter_api_version,
namespace: 'Clutter',
export_packages: [libmutter_clutter_name],
includes: [
libmutter_cogl_gir[0],
libmutter_cogl_pango_gir[0],
'GL-1.0',
'GObject-2.0',
'cairo-1.0',
'Atk-1.0',
'Json-1.0',
],
dependencies: [cogl_deps],
extra_args: clutter_introspection_args + ['--c-include=clutter/clutter.h'],
install_dir_gir: pkglibdir,
install_dir_typelib: pkglibdir,
install: true,
)
libmutter_cally_gir = gnome.generate_gir(libmutter_clutter,
sources: [
cally_sources,
cally_headers,
],
nsversion: libmutter_api_version,
namespace: 'Cally',
includes: [
libmutter_cogl_gir[0],
libmutter_cogl_pango_gir[0],
libmutter_clutter_gir[0],
],
dependencies: [cogl_deps],
extra_args: clutter_introspection_args,
install_dir_gir: pkglibdir,
install_dir_typelib: pkglibdir,
install: true
)
if have_x11
libmutter_clutter_x11_gir = gnome.generate_gir(libmutter_clutter,
sources: [
clutter_x11_sources,
clutter_x11_headers,
],
nsversion: libmutter_api_version,
namespace: 'ClutterX11',
export_packages: ['mutter-clutter-x11-' + libmutter_api_version],
includes: [
libmutter_cogl_gir[0],
libmutter_cogl_pango_gir[0],
libmutter_clutter_gir[0],
'xlib-2.0',
],
dependencies: [],
extra_args: clutter_introspection_args,
install_dir_gir: pkglibdir,
install_dir_typelib: pkglibdir,
install: true
)
endif
endif
install_headers(clutter_headers,
subdir: clutter_clutter_includedir)
install_headers(cally_headers,
subdir: join_paths(clutter_includedir, 'cally'))
install_headers(clutter_deprecated_headers,
subdir: join_paths(clutter_clutter_includedir, 'deprecated'))
install_headers(clutter_x11_headers,
subdir: join_paths(clutter_clutter_includedir, 'x11'))
pkg.generate(libmutter_clutter,
name: 'Mutters Clutter',
filebase: libmutter_clutter_name,
description: 'Mutters Clutter Private Library',
libraries: [m_dep],
subdirs: join_paths(pkgname, 'clutter'),
requires: [clutter_pkg_deps, libmutter_cogl_name],
version: meson.project_version(),
variables: [
'apiversion=' + libmutter_api_version,
],
install_dir: pcdir,
)
pkg.generate(libmutter_clutter,
name: 'Mutters ClutterX11',
filebase: 'mutter-clutter-x11-' + libmutter_api_version,
description: 'Mutters ClutterX11 Private Library',
libraries: [m_dep],
subdirs: join_paths(pkgname, 'clutter'),
requires: [clutter_pkg_deps, libmutter_cogl_name],
version: meson.project_version(),
variables: [
'apiversion=' + libmutter_api_version,
],
install_dir: pcdir,
)