237e505cc7
Since StDrawingArea in gnome-shell is the only user of ClutterCanvas, it is possible to move ClutterCanvas completely out of Mutter to gnome-shell. This allows to remove another Cairo dependency from Mutter. This patch removes ClutterCanvas code from Mutter. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3470>
366 lines
9.4 KiB
Meson
366 lines
9.4 KiB
Meson
clutter_clutter_includesubdir = clutter_includesubdir / 'clutter'
|
|
clutter_clutter_includedir = 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-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-click-action.h',
|
|
'clutter-clone.h',
|
|
'clutter-color-state.h',
|
|
'clutter-color-static.h',
|
|
'clutter-color.h',
|
|
'clutter-colorize-effect.h',
|
|
'clutter-constraint.h',
|
|
'clutter-content.h',
|
|
'clutter-context.h',
|
|
'clutter-deform-effect.h',
|
|
'clutter-desaturate-effect.h',
|
|
'clutter-effect.h',
|
|
'clutter-enums.h',
|
|
'clutter-event.h',
|
|
'clutter-fixed-layout.h',
|
|
'clutter-flow-layout.h',
|
|
'clutter-frame-clock.h',
|
|
'clutter-frame.h',
|
|
'clutter-gesture-action.h',
|
|
'clutter-grab.h',
|
|
'clutter-grid-layout.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-keyval.c',
|
|
'clutter-keyval.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-pick-context.h',
|
|
'clutter-property-transition.h',
|
|
'clutter-rotate-action.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-texture-content.h',
|
|
'clutter-timeline.h',
|
|
'clutter-transition-group.h',
|
|
'clutter-transition.h',
|
|
'clutter-types.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-bind-constraint.c',
|
|
'clutter-binding-pool.c',
|
|
'clutter-bin-layout.c',
|
|
'clutter-blur.c',
|
|
'clutter-blur-effect.c',
|
|
'clutter-box-layout.c',
|
|
'clutter-brightness-contrast-effect.c',
|
|
'clutter-click-action.c',
|
|
'clutter-clone.c',
|
|
'clutter-color.c',
|
|
'clutter-color-state.c',
|
|
'clutter-colorize-effect.c',
|
|
'clutter-constraint.c',
|
|
'clutter-content.c',
|
|
'clutter-context.c',
|
|
'clutter-damage-history.c',
|
|
'clutter-deform-effect.c',
|
|
'clutter-desaturate-effect.c',
|
|
'clutter-effect.c',
|
|
'clutter-event.c',
|
|
'clutter-fixed-layout.c',
|
|
'clutter-flatten-effect.c',
|
|
'clutter-flow-layout.c',
|
|
'clutter-frame-clock.c',
|
|
'clutter-frame.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-input-only-action.c',
|
|
'clutter-input-only-actor.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-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-pick-context.c',
|
|
'clutter-pick-stack.c',
|
|
'clutter-property-transition.c',
|
|
'clutter-rotate-action.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-texture-content.c',
|
|
'clutter-transition-group.c',
|
|
'clutter-transition.c',
|
|
'clutter-timeline.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-blur-private.h',
|
|
'clutter-constraint-private.h',
|
|
'clutter-content-private.h',
|
|
'clutter-context-private.h',
|
|
'clutter-damage-history.h',
|
|
'clutter-debug.h',
|
|
'clutter-easing.h',
|
|
'clutter-effect-private.h',
|
|
'clutter-event-private.h',
|
|
'clutter-flatten-effect.h',
|
|
'clutter-frame-private.h',
|
|
'clutter-graphene.h',
|
|
'clutter-input-device-private.h',
|
|
'clutter-input-focus-private.h',
|
|
'clutter-input-method-private.h',
|
|
'clutter-input-pointer-a11y-private.h',
|
|
'clutter-input-only-action.h',
|
|
'clutter-input-only-actor.h',
|
|
'clutter-keymap-private.h',
|
|
'clutter-paint-context-private.h',
|
|
'clutter-paint-node-private.h',
|
|
'clutter-paint-volume-private.h',
|
|
'clutter-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-timeline-private.h',
|
|
]
|
|
|
|
clutter_nonintrospected_sources = [
|
|
'clutter-easing.c',
|
|
]
|
|
|
|
clutter_backend_private_headers = []
|
|
|
|
cally_headers = [
|
|
'cally/cally-actor.h',
|
|
'cally/cally-clone.h',
|
|
'cally/cally-factory.h',
|
|
'cally/cally.h',
|
|
'cally/cally-main.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-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_enum_types = gnome.mkenums('clutter-enum-types',
|
|
sources: clutter_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_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, top_includepath],
|
|
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(prefix / sysconfdir),
|
|
'-DCLUTTER_COMPILATION=1',
|
|
'-DG_LOG_DOMAIN="Clutter"'
|
|
]
|
|
|
|
libmutter_clutter_gir = gnome.generate_gir(libmutter_clutter,
|
|
sources: [
|
|
clutter_built_sources,
|
|
clutter_built_headers,
|
|
clutter_sources,
|
|
clutter_headers,
|
|
],
|
|
nsversion: libmutter_api_version,
|
|
namespace: 'Clutter',
|
|
export_packages: [libmutter_clutter_name],
|
|
includes: [
|
|
libmutter_mtk_gir[0],
|
|
libmutter_cogl_gir[0],
|
|
libmutter_cogl_pango_gir[0],
|
|
'GL-1.0',
|
|
'GObject-2.0',
|
|
'cairo-1.0',
|
|
'Atk-1.0',
|
|
],
|
|
dependencies: [cogl_deps],
|
|
extra_args: clutter_introspection_args + ['--c-include=clutter/clutter.h'],
|
|
kwargs: introspection_common,
|
|
)
|
|
|
|
libmutter_cally_gir = gnome.generate_gir(libmutter_clutter,
|
|
sources: [
|
|
cally_sources,
|
|
cally_headers,
|
|
],
|
|
nsversion: libmutter_api_version,
|
|
header: 'cally/cally.h',
|
|
namespace: 'Cally',
|
|
includes: [
|
|
libmutter_mtk_gir[0],
|
|
libmutter_cogl_gir[0],
|
|
libmutter_cogl_pango_gir[0],
|
|
libmutter_clutter_gir[0],
|
|
],
|
|
dependencies: [cogl_deps],
|
|
extra_args: clutter_introspection_args,
|
|
kwargs: introspection_common,
|
|
)
|
|
endif
|
|
|
|
install_headers(clutter_headers,
|
|
subdir: clutter_clutter_includesubdir)
|
|
|
|
install_headers(cally_headers,
|
|
subdir: clutter_includesubdir / 'cally')
|
|
|
|
pkg.generate(libmutter_clutter,
|
|
name: 'Mutters Clutter',
|
|
filebase: libmutter_clutter_name,
|
|
description: 'Mutters Clutter Private Library',
|
|
libraries: [m_dep],
|
|
subdirs: pkgname / 'clutter',
|
|
requires: [clutter_pkg_deps, libmutter_cogl_name, libmutter_mtk_name],
|
|
version: meson.project_version(),
|
|
variables: [
|
|
'apiversion=' + libmutter_api_version,
|
|
],
|
|
install_dir: pcdir,
|
|
)
|