mutter/clutter/clutter/meson.build
Jonas Ådahl 322b51cded clutter: Remove ClutterAnimation
This removes ClutterAnimation and related tests. ClutterAnimation has
been deprecated for a long time, and replacements exist and are used by
e.g. GNOME Shell since a while back.

This also disables a few relatively unrelated interactive tests, as they
rely on ClutterAnimation to implement some animations they use to
illustrate what they actually test.

As interactive tests currently are more or less untestable due to any
interaction with them crashing, as well as they in practice means
rewriting the tests using non-deprecated animation APIs, they are not
ported right now. To actually port the interactive tests, it needs to be
possible to fist interact with them.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1192
2020-05-07 20:04:07 +00:00

536 lines
14 KiB
Meson

clutter_clutter_includesubdir = join_paths(clutter_includesubdir, 'clutter')
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-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-context.h',
'clutter-paint-nodes.h',
'clutter-paint-node.h',
'clutter-pan-action.h',
'clutter-path-constraint.h',
'clutter-path.h',
'clutter-pick-context.h',
'clutter-property-transition.h',
'clutter-rotate-action.h',
'clutter-script.h',
'clutter-scriptable.h',
'clutter-scroll-actor.h',
'clutter-seat.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-stage-view.h',
'clutter-tap-action.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-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-graphene.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-input-pointer-a11y.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-context.c',
'clutter-paint-nodes.c',
'clutter-paint-node.c',
'clutter-pan-action.c',
'clutter-path-constraint.c',
'clutter-path.c',
'clutter-pick-context.c',
'clutter-property-transition.c',
'clutter-rotate-action.c',
'clutter-script.c',
'clutter-script-parser.c',
'clutter-scriptable.c',
'clutter-scroll-actor.c',
'clutter-seat.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-view.c',
'clutter-stage-window.c',
'clutter-tap-action.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-easing.h',
'clutter-effect-private.h',
'clutter-event-private.h',
'clutter-flatten-effect.h',
'clutter-graphene.h',
'clutter-gesture-action-private.h',
'clutter-id-pool.h',
'clutter-input-device-private.h',
'clutter-input-focus-private.h',
'clutter-input-method-private.h',
'clutter-input-pointer-a11y-private.h',
'clutter-master-clock.h',
'clutter-master-clock-default.h',
'clutter-offscreen-effect-private.h',
'clutter-paint-context-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-private.h',
'clutter-stage-window.h',
]
clutter_nonintrospected_sources = [
'clutter-easing.c',
'clutter-id-pool.c',
]
clutter_deprecated_headers = [
'deprecated/clutter-actor.h',
'deprecated/clutter-box.h',
'deprecated/clutter-container.h',
'deprecated/clutter-group.h',
'deprecated/clutter-rectangle.h',
'deprecated/clutter-stage.h',
'deprecated/clutter-timeline.h',
]
clutter_deprecated_sources = [
'deprecated/clutter-box.c',
'deprecated/clutter-group.c',
'deprecated/clutter-rectangle.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',
]
clutter_backend_sources += clutter_x11_sources
clutter_x11_headers = [
'x11/clutter-x11.h',
]
clutter_backend_headers += clutter_x11_headers
clutter_x11_private_headers = [
'x11/clutter-backend-x11.h',
'x11/clutter-settings-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',
]
clutter_backend_nonintrospected_sources += clutter_native_nonintrospected_sources
endif
if have_wayland
clutter_wayland_private_headers = [
'wayland/clutter-wayland-compositor.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-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-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
cdata = configuration_data()
if have_wayland
cdata.set10('CLUTTER_HAS_WAYLAND_COMPOSITOR_SUPPORT', true)
endif
if have_x11
cdata.set_quoted('CLUTTER_WINDOWING_X11', 'x11')
cdata.set_quoted('CLUTTER_INPUT_X11', 'x11')
cdata.set_quoted('CLUTTER_WINDOWING_GLX', 'glx')
endif
if have_native_backend
cdata.set_quoted('CLUTTER_WINDOWING_EGL', 'eglnative')
cdata.set_quoted('CLUTTER_INPUT_EVDEV', 'evdev')
endif
cdata.set_quoted('CLUTTER_INPUT_NULL', 'null')
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_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,
],
install_rpath: pkglibdir,
install_dir: pkglibdir,
install: true,
)
libmutter_clutter_dep = declare_dependency(
sources: [clutter_enum_types[1]],
link_with: libmutter_clutter,
dependencies: clutter_deps,
)
if have_introspection
clutter_introspection_args = introspection_args + [
'-DCLUTTER_SYSCONFDIR="@0@"'.format(join_paths(prefix, sysconfdir)),
'-DCLUTTER_COMPILATION=1',
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
'-DG_LOG_DOMAIN="Clutter"'
]
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_includesubdir)
install_headers(cally_headers,
subdir: join_paths(clutter_includesubdir, 'cally'))
install_headers(clutter_deprecated_headers,
subdir: join_paths(clutter_clutter_includesubdir, 'deprecated'))
install_headers(clutter_x11_headers,
subdir: join_paths(clutter_clutter_includesubdir, '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,
)