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-frame-clock.h', 'clutter-gesture-action.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-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-damage-history.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-frame-clock.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-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-damage-history.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-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-timeline-private.h', ] clutter_nonintrospected_sources = [ 'clutter-easing.c', 'clutter-id-pool.c', ] clutter_deprecated_headers = [ 'deprecated/clutter-container.h', 'deprecated/clutter-timeline.h', ] 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_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.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_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_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_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, )