Add meson build support
This commit adds meson build support to mutter. It takes a step away from the three separate code bases with three different autotools setups into a single meson build system. There are still places that can be unified better, for example by removing various "config.h" style files from cogl and clutter, centralizing debug C flags and other configurable macros, and similar artifacts that are there only because they were once separate code bases. There are some differences between the autotools setup and the new meson. Here are a few: The meson setup doesn't generate wrapper scripts for various cogl and clutter test cases. What these tests did was more or less generate a tiny script that called an executable with a test name as the argument. To run particular tests, just run the test executable with the name of the test as the argument. The meson setup doesn't install test files anymore. The autotools test suite was designed towards working with installed tests, but it didn't really still, and now with meson, it doesn't install anything at all, but instead makes sure that everything runs with the uninstalled input files, binaries and libraries when running the test suite. Installable tests may come later. Tests from cogl, clutter and mutter are run on 'meson test'. In autotools, only cogl and clutter tests were run on 'make check'.
This commit is contained in:
parent
417c00b8fa
commit
ef85d1a643
1
.gitignore
vendored
1
.gitignore
vendored
@ -131,3 +131,4 @@ ltversion.m4
|
||||
lt~obsolete.m4
|
||||
.dirstamp
|
||||
**/tags.*
|
||||
build/
|
||||
|
14
clutter/clutter/clutter-build-config.h.meson
Normal file
14
clutter/clutter/clutter-build-config.h.meson
Normal file
@ -0,0 +1,14 @@
|
||||
/* Mutter version */
|
||||
#mesondefine MUTTER_VERSION
|
||||
|
||||
/* List of Cogl drivers */
|
||||
#mesondefine CLUTTER_DRIVERS
|
||||
|
||||
/* Have evdev support for input handling */
|
||||
#mesondefine HAVE_EVDEV
|
||||
|
||||
/* Building with libwacom for advanced tablet management */
|
||||
#mesondefine HAVE_LIBWACOM
|
||||
|
||||
/* Supports PangoFt2 */
|
||||
#mesondefine HAVE_PANGO_FT2
|
654
clutter/clutter/meson.build
Normal file
654
clutter/clutter/meson.build
Normal file
@ -0,0 +1,654 @@
|
||||
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-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-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-media.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-media.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-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-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: ['--prototypes'],
|
||||
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,
|
||||
],
|
||||
c_args: clutter_c_args,
|
||||
include_directories: clutter_includes,
|
||||
dependencies: [clutter_deps],
|
||||
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 = clutter_c_args + [
|
||||
'-U_GNU_SOURCE', # _GNU_SOURCE triggers warnings in g-ir-scanner
|
||||
'--quiet',
|
||||
]
|
||||
|
||||
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(
|
||||
name: 'Mutters Clutter',
|
||||
filebase: libmutter_clutter_name,
|
||||
description: 'Mutters Clutter Private Library',
|
||||
libraries: [libmutter_clutter, m_dep],
|
||||
subdirs: join_paths(pkgname, 'clutter'),
|
||||
requires: [clutter_pkg_deps, libmutter_cogl_name],
|
||||
version: meson.project_version(),
|
||||
variables: [
|
||||
'apiversion=' + libmutter_api_version,
|
||||
],
|
||||
)
|
||||
|
||||
pkg.generate(
|
||||
name: 'Mutters ClutterX11',
|
||||
filebase: 'mutter-clutter-x11-' + libmutter_api_version,
|
||||
description: 'Mutters ClutterX11 Private Library',
|
||||
libraries: [libmutter_clutter, m_dep],
|
||||
subdirs: join_paths(pkgname, 'clutter'),
|
||||
requires: [clutter_pkg_deps, libmutter_cogl_name],
|
||||
version: meson.project_version(),
|
||||
variables: [
|
||||
'apiversion=' + libmutter_api_version,
|
||||
],
|
||||
)
|
92
clutter/meson.build
Normal file
92
clutter/meson.build
Normal file
@ -0,0 +1,92 @@
|
||||
clutter_includedir = join_paths(pkgincludedir, 'clutter')
|
||||
clutter_srcdir = join_paths(top_srcdir, 'clutter')
|
||||
clutter_builddir = join_paths(builddir, 'clutter')
|
||||
|
||||
clutter_includepath = include_directories('.', 'clutter')
|
||||
clutter_includes = [clutter_includepath, cogl_includepath]
|
||||
|
||||
clutter_c_args = [
|
||||
'-DCLUTTER_SYSCONFDIR="@0@"'.format(join_paths(prefix, sysconfdir)),
|
||||
'-DCLUTTER_COMPILATION=1',
|
||||
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DG_LOG_DOMAIN="Clutter"',
|
||||
]
|
||||
|
||||
clutter_debug_c_args = []
|
||||
if buildtype.startswith('debug')
|
||||
clutter_debug_c_args += '-DG_DISABLE_CAST_CHECKS'
|
||||
if buildtype == 'debug'
|
||||
clutter_debug_c_args += '-DCLUTTER_ENABLE_DEBUG'
|
||||
endif
|
||||
elif buildtype == 'release'
|
||||
clutter_debug_c_args += [
|
||||
'-DG_DISABLE_ASSERT',
|
||||
'-DG_DISABLE_CHECKS',
|
||||
'-DG_DISABLE_CAST_CHECKS',
|
||||
]
|
||||
endif
|
||||
|
||||
clutter_c_args += clutter_debug_c_args
|
||||
|
||||
clutter_pkg_deps = [
|
||||
gdk_pixbuf_dep,
|
||||
cairo_gobject_dep,
|
||||
glib_dep,
|
||||
gobject_dep,
|
||||
gio_dep,
|
||||
gthread_dep,
|
||||
gmodule_no_export_dep,
|
||||
atk_dep,
|
||||
pangocairo_dep,
|
||||
json_glib_dep,
|
||||
]
|
||||
|
||||
if have_pango_ft2
|
||||
clutter_pkg_deps += [
|
||||
pangoft2_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_wayland
|
||||
clutter_pkg_deps += [
|
||||
wayland_egl_dep,
|
||||
wayland_server_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_x11
|
||||
clutter_pkg_deps += [
|
||||
x11_dep,
|
||||
xext_dep,
|
||||
xdamage_dep,
|
||||
xcomposite_dep,
|
||||
xtst_dep,
|
||||
xi_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_native_backend
|
||||
clutter_pkg_deps += [
|
||||
libudev_dep,
|
||||
libinput_dep,
|
||||
xkbcommon_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_libwacom
|
||||
clutter_pkg_deps += [
|
||||
libwacom_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
clutter_deps = [
|
||||
clutter_pkg_deps,
|
||||
libmutter_cogl_dep,
|
||||
m_dep
|
||||
]
|
||||
|
||||
subdir('clutter')
|
||||
|
||||
if have_clutter_tests
|
||||
subdir('tests')
|
||||
endif
|
38
clutter/tests/accessibility/meson.build
Normal file
38
clutter/tests/accessibility/meson.build
Normal file
@ -0,0 +1,38 @@
|
||||
clutter_test_accessibility_common_sources = [
|
||||
'cally-examples-util.c',
|
||||
'cally-examples-util.h',
|
||||
]
|
||||
|
||||
clutter_test_accessibility_c_args = [
|
||||
'-DPREFIXDIR="@0@"'.format(libdir),
|
||||
'-DCLUTTER_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DGLIB_DISABLE_DEPRECATION_WARNINGS',
|
||||
]
|
||||
|
||||
clutter_test_accessibility_c_args += clutter_debug_c_args
|
||||
|
||||
clutter_accessibility_tests_dependencies = [
|
||||
clutter_deps,
|
||||
libmutter_clutter_dep,
|
||||
]
|
||||
|
||||
clutter_accessibility_tests = [
|
||||
'cally-atkcomponent-example',
|
||||
'cally-atktext-example',
|
||||
'cally-atkevents-example',
|
||||
'cally-atkeditabletext-example',
|
||||
'cally-clone-example',
|
||||
]
|
||||
|
||||
foreach test : clutter_accessibility_tests
|
||||
executable(test,
|
||||
sources: [
|
||||
clutter_test_accessibility_common_sources,
|
||||
test + '.c',
|
||||
],
|
||||
include_directories: clutter_includes,
|
||||
c_args: clutter_test_accessibility_c_args,
|
||||
dependencies: [clutter_accessibility_tests_dependencies],
|
||||
install: false,
|
||||
)
|
||||
endforeach
|
84
clutter/tests/conform/meson.build
Normal file
84
clutter/tests/conform/meson.build
Normal file
@ -0,0 +1,84 @@
|
||||
clutter_tests_conform_srcdir = join_paths(clutter_srcdir, 'tests/conform')
|
||||
clutter_tests_conform_builddir = join_paths(clutter_builddir, 'tests/conform')
|
||||
|
||||
clutter_tests_conform_c_args = [
|
||||
'-DG_LOG_DOMAIN="Clutter-Conform"',
|
||||
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
|
||||
]
|
||||
clutter_tests_conform_c_args += clutter_debug_c_args
|
||||
|
||||
clutter_tests_conform_link_args = [
|
||||
'-Wl,--export-dynamic',
|
||||
]
|
||||
|
||||
clutter_conform_tests_actor_tests = [
|
||||
'actor-anchors',
|
||||
'actor-destroy',
|
||||
'actor-graph',
|
||||
'actor-invariants',
|
||||
'actor-iter',
|
||||
'actor-layout',
|
||||
'actor-meta',
|
||||
'actor-offscreen-limit-max-size',
|
||||
'actor-offscreen-redirect',
|
||||
'actor-paint-opacity',
|
||||
'actor-pick',
|
||||
'actor-shader-effect',
|
||||
'actor-size',
|
||||
]
|
||||
|
||||
clutter_conform_tests_classes_tests = [
|
||||
'text',
|
||||
]
|
||||
|
||||
clutter_conform_tests_general_tests = [
|
||||
'binding-pool',
|
||||
'color',
|
||||
'events-touch',
|
||||
'interval',
|
||||
'model',
|
||||
'script-parser',
|
||||
'units',
|
||||
]
|
||||
|
||||
clutter_conform_tests_deprecated_tests = [
|
||||
'animator',
|
||||
'behaviours',
|
||||
'group',
|
||||
'rectangle',
|
||||
'texture',
|
||||
]
|
||||
|
||||
clutter_conform_tests = []
|
||||
clutter_conform_tests += clutter_conform_tests_actor_tests
|
||||
clutter_conform_tests += clutter_conform_tests_classes_tests
|
||||
clutter_conform_tests += clutter_conform_tests_general_tests
|
||||
clutter_conform_tests += clutter_conform_tests_deprecated_tests
|
||||
|
||||
test_env = environment()
|
||||
test_env.set('G_TEST_SRCDIR', clutter_tests_conform_srcdir)
|
||||
test_env.set('G_TEST_BUILDDIR', clutter_tests_conform_builddir)
|
||||
test_env.set('G_ENABLE_DIAGNOSTIC', '0')
|
||||
test_env.set('CLUTTER_ENABLE_DIAGNOSTIC', '0')
|
||||
test_env.set('CLUTTER_SCALE', '1')
|
||||
|
||||
foreach test : clutter_conform_tests
|
||||
test_executable = executable('@0@'.format(test),
|
||||
sources: [
|
||||
'@0@.c'.format(test),
|
||||
],
|
||||
include_directories: clutter_includes,
|
||||
c_args: clutter_tests_conform_c_args,
|
||||
link_args: clutter_tests_conform_link_args,
|
||||
dependencies: [
|
||||
clutter_deps,
|
||||
libmutter_clutter_dep,
|
||||
libmutter_cogl_path_dep
|
||||
],
|
||||
install: false,
|
||||
)
|
||||
|
||||
test('clutter/conform/@0@'.format(test), test_executable,
|
||||
env: test_env
|
||||
)
|
||||
endforeach
|
103
clutter/tests/interactive/meson.build
Normal file
103
clutter/tests/interactive/meson.build
Normal file
@ -0,0 +1,103 @@
|
||||
clutter_tests_interactive_srcdir = join_paths(clutter_srcdir, 'tests/interactive')
|
||||
|
||||
clutter_tests_interactive_includepath = include_directories('.')
|
||||
#clutter_tests_interactive_builddir = join_paths(clutter_builddir, 'tests/interactive')
|
||||
|
||||
clutter_tests_interactive_c_args = [
|
||||
'-DTESTS_DATADIR="@0@"'.format(clutter_tests_interactive_srcdir),
|
||||
'-DG_DISABLE_SINGLE_INCLUDES',
|
||||
'-DGLIB_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DCLUTTER_DISABLE_DEPRECATION_WARNINGS',
|
||||
]
|
||||
clutter_tests_interactive_c_args += clutter_debug_c_args
|
||||
|
||||
clutter_tests_interactive_link_args = [
|
||||
'-Wl,--export-dynamic',
|
||||
]
|
||||
|
||||
clutter_tests_interactive_test_sources = [
|
||||
'test-texture-slicing.c',
|
||||
'test-texture-async.c',
|
||||
'test-texture-material.c',
|
||||
'test-events.c',
|
||||
'test-scale.c',
|
||||
'test-actors.c',
|
||||
'test-shader-effects.c',
|
||||
'test-script.c',
|
||||
'test-grab.c',
|
||||
'test-cogl-shader-glsl.c',
|
||||
'test-animator.c',
|
||||
'test-state.c',
|
||||
'test-state-animator.c',
|
||||
'test-fbo.c',
|
||||
'test-multistage.c',
|
||||
'test-cogl-tex-tile.c',
|
||||
'test-cogl-tex-convert.c',
|
||||
'test-cogl-tex-foreign.c',
|
||||
'test-cogl-offscreen.c',
|
||||
'test-cogl-tex-polygon.c',
|
||||
'test-cogl-multitexture.c',
|
||||
'test-stage-read-pixels.c',
|
||||
'test-paint-wrapper.c',
|
||||
'test-texture-quality.c',
|
||||
'test-layout.c',
|
||||
'test-animation.c',
|
||||
'test-easing.c',
|
||||
'test-binding-pool.c',
|
||||
'test-text.c',
|
||||
'test-text-field.c',
|
||||
'test-cairo-clock.c',
|
||||
'test-cairo-flowers.c',
|
||||
'test-cogl-vertex-buffer.c',
|
||||
'test-stage-sizing.c',
|
||||
'test-scrolling.c',
|
||||
'test-swipe-action.c',
|
||||
'test-cogl-point-sprites.c',
|
||||
'test-table-layout.c',
|
||||
'test-path-constraint.c',
|
||||
'test-state-script.c',
|
||||
'test-devices.c',
|
||||
'test-content.c',
|
||||
'test-keyframe-transition.c',
|
||||
'test-bind-constraint.c',
|
||||
'test-touch-events.c',
|
||||
'test-rotate-zoom.c',
|
||||
'test-image.c',
|
||||
]
|
||||
|
||||
if have_x11
|
||||
clutter_tests_interactive_test_sources += [
|
||||
'test-pixmap.c',
|
||||
]
|
||||
endif
|
||||
|
||||
gen_test_unit_names = find_program('meson/gen-test-unit-names.sh')
|
||||
clutter_interactive_test_unit_names_h = custom_target('gen-test-unit-names',
|
||||
output: 'test-unit-names.h',
|
||||
input: clutter_tests_interactive_test_sources,
|
||||
command: [gen_test_unit_names, '@OUTPUT@', '@INPUT@'],
|
||||
install: false,
|
||||
)
|
||||
|
||||
clutter_tests_interactive_sources = [
|
||||
'test-main.c',
|
||||
clutter_interactive_test_unit_names_h,
|
||||
clutter_tests_interactive_test_sources
|
||||
]
|
||||
|
||||
executable('test-interactive',
|
||||
sources: clutter_tests_interactive_sources,
|
||||
include_directories: [
|
||||
clutter_includes,
|
||||
clutter_tests_interactive_includepath,
|
||||
],
|
||||
c_args: clutter_tests_interactive_c_args,
|
||||
link_args: clutter_tests_interactive_link_args,
|
||||
dependencies: [
|
||||
clutter_deps,
|
||||
libmutter_clutter_dep,
|
||||
gdk_pixbuf_dep,
|
||||
],
|
||||
install: false,
|
||||
)
|
15
clutter/tests/interactive/meson/gen-test-unit-names.sh
Executable file
15
clutter/tests/interactive/meson/gen-test-unit-names.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
outputfile=$1
|
||||
shift
|
||||
test_source_files="$@"
|
||||
|
||||
echo '/* ** This file is autogenerated. Do not edit. ** */' > $outputfile
|
||||
echo '' >> $outputfile
|
||||
echo 'const char *test_unit_names[] = {' >> $outputfile
|
||||
|
||||
for test_source_file in $test_source_files; do
|
||||
echo " \"$(echo $test_source_file | sed 's/.*\(test-[a-z0-9\-]\+\)\.c/\1/')\"," >> $outputfile
|
||||
done
|
||||
|
||||
echo '};' >> $outputfile
|
5
clutter/tests/meson.build
Normal file
5
clutter/tests/meson.build
Normal file
@ -0,0 +1,5 @@
|
||||
subdir('accessibility')
|
||||
subdir('conform')
|
||||
subdir('interactive')
|
||||
subdir('micro-bench')
|
||||
subdir('performance')
|
28
clutter/tests/micro-bench/meson.build
Normal file
28
clutter/tests/micro-bench/meson.build
Normal file
@ -0,0 +1,28 @@
|
||||
clutter_tests_micro_bench_c_args = [
|
||||
'-DG_DISABLE_SINGLE_INCLUDES',
|
||||
'-DGLIB_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DCLUTTER_DISABLE_DEPRECATION_WARNINGS',
|
||||
]
|
||||
clutter_tests_micro_bench_c_args += clutter_debug_c_args
|
||||
|
||||
clutter_tests_micro_bench_tests = [
|
||||
'test-text',
|
||||
'test-picking',
|
||||
'test-text-perf',
|
||||
'test-random-text',
|
||||
'test-cogl-perf',
|
||||
]
|
||||
|
||||
foreach test : clutter_tests_micro_bench_tests
|
||||
executable(test,
|
||||
sources: '@0@.c'.format(test),
|
||||
include_directories: clutter_includes,
|
||||
c_args: clutter_tests_micro_bench_c_args,
|
||||
dependencies: [
|
||||
clutter_deps,
|
||||
libmutter_clutter_dep,
|
||||
],
|
||||
install: false,
|
||||
)
|
||||
endforeach
|
35
clutter/tests/performance/meson.build
Normal file
35
clutter/tests/performance/meson.build
Normal file
@ -0,0 +1,35 @@
|
||||
clutter_tests_performance_c_args = [
|
||||
'-DTESTS_DATA_DIR="@0@"'.format(join_paths(clutter_srcdir, 'tests/interactive')),
|
||||
'-DG_DISABLE_SINGLE_INCLUDES',
|
||||
'-DGLIB_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DCLUTTER_DISABLE_DEPRECATION_WARNINGS',
|
||||
]
|
||||
|
||||
clutter_tests_performance_c_args += clutter_debug_c_args
|
||||
|
||||
clutter_tests_performance_tests = [
|
||||
'test-picking',
|
||||
'test-text-perf',
|
||||
'test-state',
|
||||
'test-state-interactive',
|
||||
'test-state-hidden',
|
||||
'test-state-mini',
|
||||
'test-state-pick',
|
||||
]
|
||||
|
||||
foreach test : clutter_tests_performance_tests
|
||||
executable(test,
|
||||
sources: [
|
||||
'@0@.c'.format(test),
|
||||
'test-common.h',
|
||||
],
|
||||
include_directories: clutter_includes,
|
||||
c_args: clutter_tests_performance_c_args,
|
||||
dependencies: [
|
||||
clutter_deps,
|
||||
libmutter_clutter_dep,
|
||||
],
|
||||
install: false,
|
||||
)
|
||||
endforeach
|
10
cogl/cogl-config.h.meson
Normal file
10
cogl/cogl-config.h.meson
Normal file
@ -0,0 +1,10 @@
|
||||
/* Have GL for rendering */
|
||||
#mesondefine HAVE_COGL_GL
|
||||
|
||||
/* Have GLES 2.0 for rendering */
|
||||
#mesondefine HAVE_COGL_GLES2
|
||||
|
||||
/* Enable unit tests */
|
||||
#mesondefine ENABLE_UNIT_TESTS
|
||||
|
||||
#define COGL_CONFIG_H_INCLUDED 1
|
6
cogl/cogl-gles2/libmutter-cogl-gles2.map
Normal file
6
cogl/cogl-gles2/libmutter-cogl-gles2.map
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
global:
|
||||
gl*;
|
||||
local:
|
||||
*;
|
||||
}
|
38
cogl/cogl-gles2/meson.build
Normal file
38
cogl/cogl-gles2/meson.build
Normal file
@ -0,0 +1,38 @@
|
||||
cogl_gles2_public_headers = [
|
||||
'GLES2/gl2.h',
|
||||
'GLES2/gl2ext.h',
|
||||
'GLES2/gl2platform.h',
|
||||
]
|
||||
|
||||
cogl_gles2_sources = [
|
||||
'cogl-gles2-api.c',
|
||||
]
|
||||
|
||||
libmutter_cogl_gles2 = shared_library('mutter-cogl-gles2-' + libmutter_api_version,
|
||||
sources: [cogl_gles2_sources, cogl_gles2_public_headers],
|
||||
c_args: cogl_c_args,
|
||||
include_directories: [cogl_includepath, cogl_path_includepath],
|
||||
link_depends: 'libmutter-cogl-gles2.map',
|
||||
dependencies: [cogl_deps],
|
||||
link_with: libmutter_cogl,
|
||||
install_rpath: pkglibdir,
|
||||
install_dir: pkglibdir,
|
||||
install: true,
|
||||
)
|
||||
|
||||
cogl_gles2_includedir = join_paths(cogl_includedir, 'cogl-gles2/GLES2')
|
||||
install_headers(cogl_gles2_public_headers,
|
||||
subdir: cogl_gles2_includedir)
|
||||
|
||||
pkg.generate(
|
||||
name: 'CoglGles2',
|
||||
filebase: 'mutter-cogl-gles2-' + libmutter_api_version,
|
||||
description: 'A cogl GLES2 helper library for mutter',
|
||||
libraries: [libmutter_cogl_gles2],
|
||||
subdirs: join_paths(pkgname, 'cogl'),
|
||||
requires: [cogl_pkg_deps, libmutter_cogl_name],
|
||||
version: meson.project_version(),
|
||||
variables: [
|
||||
'apiversion=' + libmutter_api_version,
|
||||
],
|
||||
)
|
6
cogl/cogl-pango/libmutter-cogl-pango.map
Normal file
6
cogl/cogl-pango/libmutter-cogl-pango.map
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
global:
|
||||
cogl_pango_*;
|
||||
local:
|
||||
*;
|
||||
}
|
74
cogl/cogl-pango/meson.build
Normal file
74
cogl/cogl-pango/meson.build
Normal file
@ -0,0 +1,74 @@
|
||||
cogl_pango_sources = [
|
||||
'cogl-pango-display-list.c',
|
||||
'cogl-pango-display-list.h',
|
||||
'cogl-pango-fontmap.c',
|
||||
'cogl-pango-glyph-cache.c',
|
||||
'cogl-pango-glyph-cache.h',
|
||||
'cogl-pango-pipeline-cache.c',
|
||||
'cogl-pango-pipeline-cache.h',
|
||||
'cogl-pango-private.h',
|
||||
'cogl-pango-render.c',
|
||||
]
|
||||
|
||||
cogl_pango_public_headers = [
|
||||
'cogl-pango.h',
|
||||
]
|
||||
|
||||
cogl_pango_deps = [
|
||||
cogl_deps,
|
||||
pango_dep,
|
||||
pangocairo_dep,
|
||||
]
|
||||
|
||||
libmutter_cogl_pango = shared_library('mutter-cogl-pango-' + libmutter_api_version,
|
||||
sources: [cogl_pango_sources, cogl_pango_public_headers],
|
||||
c_args: cogl_c_args,
|
||||
include_directories: [cogl_includepath, cogl_path_includepath],
|
||||
link_depends: 'libmutter-cogl-pango.map',
|
||||
dependencies: cogl_pango_deps,
|
||||
link_with: libmutter_cogl,
|
||||
install_rpath: pkglibdir,
|
||||
install_dir: pkglibdir,
|
||||
install: true,
|
||||
)
|
||||
|
||||
if have_introspection
|
||||
libmutter_cogl_pango_gir = gnome.generate_gir(libmutter_cogl_pango,
|
||||
sources: cogl_pango_public_headers,
|
||||
nsversion: libmutter_api_version,
|
||||
namespace: 'CoglPango',
|
||||
symbol_prefix: 'cogl_pango',
|
||||
header: 'cogl-pango.h',
|
||||
includes: [
|
||||
libmutter_cogl_gir[0],
|
||||
'Pango-1.0',
|
||||
'PangoCairo-1.0'
|
||||
],
|
||||
dependencies: [cogl_deps, pango_dep],
|
||||
link_with: [libmutter_cogl, libmutter_cogl_pango],
|
||||
extra_args: [
|
||||
'-UCOGL_COMPILATION',
|
||||
'-DG_LOG_DOMAIN=\"CoglPango\"',
|
||||
'-U_GNU_SOURCE',
|
||||
],
|
||||
install_dir_gir: pkglibdir,
|
||||
install_dir_typelib: pkglibdir,
|
||||
install: true
|
||||
)
|
||||
endif
|
||||
|
||||
cogl_pango_includedir = join_paths(cogl_includedir, 'cogl-pango')
|
||||
install_headers(cogl_pango_public_headers, subdir: cogl_pango_includedir)
|
||||
|
||||
pkg.generate(
|
||||
name: 'CoglPango',
|
||||
filebase: 'mutter-cogl-pango-' + libmutter_api_version,
|
||||
description: 'A text rendering for Cogl in mutter',
|
||||
libraries: [libmutter_cogl_pango],
|
||||
subdirs: join_paths(pkgname, 'cogl'),
|
||||
requires: [cogl_pkg_deps, libmutter_cogl_name],
|
||||
version: meson.project_version(),
|
||||
variables: [
|
||||
'apiversion=' + libmutter_api_version,
|
||||
],
|
||||
)
|
17
cogl/cogl-path/libmutter-cogl-path.map
Normal file
17
cogl/cogl-path/libmutter-cogl-path.map
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
global:
|
||||
cogl_framebuffer_*;
|
||||
cogl_path_*;
|
||||
cogl_is_*;
|
||||
cogl_clip_*;
|
||||
cogl_get_*;
|
||||
cogl_set_*;
|
||||
cogl2_framebuffer_*;
|
||||
cogl2_path_*;
|
||||
cogl2_is_*;
|
||||
cogl2_clip_*;
|
||||
cogl2_get_*;
|
||||
cogl2_set_*;
|
||||
local:
|
||||
*;
|
||||
}
|
82
cogl/cogl-path/meson.build
Normal file
82
cogl/cogl-path/meson.build
Normal file
@ -0,0 +1,82 @@
|
||||
cogl_path_includedir = join_paths(cogl_includedir, 'cogl-path')
|
||||
|
||||
cogl_path_public_headers = [
|
||||
'cogl-path.h',
|
||||
'cogl-path-functions.h',
|
||||
'cogl-path-types.h',
|
||||
]
|
||||
|
||||
cogl_path_sources = [
|
||||
'cogl-path.c',
|
||||
'cogl-path-private.h',
|
||||
'tesselator/dict-list.h',
|
||||
'tesselator/dict.c',
|
||||
'tesselator/dict.h',
|
||||
'tesselator/geom.c',
|
||||
'tesselator/geom.h',
|
||||
'tesselator/gluos.h',
|
||||
'tesselator/memalloc.h',
|
||||
'tesselator/mesh.c',
|
||||
'tesselator/mesh.h',
|
||||
'tesselator/normal.c',
|
||||
'tesselator/normal.h',
|
||||
'tesselator/priorityq-heap.h',
|
||||
'tesselator/priorityq-sort.h',
|
||||
'tesselator/priorityq.c',
|
||||
'tesselator/priorityq.h',
|
||||
'tesselator/render.c',
|
||||
'tesselator/render.h',
|
||||
'tesselator/sweep.c',
|
||||
'tesselator/sweep.h',
|
||||
'tesselator/tess.c',
|
||||
'tesselator/tess.h',
|
||||
'tesselator/tesselator.h',
|
||||
'tesselator/tessmono.c',
|
||||
'tesselator/tessmono.h',
|
||||
'tesselator/GL/glu.h',
|
||||
]
|
||||
|
||||
cogl_path_includepath = include_directories('.', 'tesselator')
|
||||
|
||||
libmutter_cogl_path_enum_types = gnome.mkenums('cogl-path-enum-types',
|
||||
sources: 'cogl-path-types.h',
|
||||
c_template: 'cogl-path-enum-types.c.in',
|
||||
h_template: 'cogl-path-enum-types.h.in',
|
||||
install_dir: cogl_path_includedir,
|
||||
install_header: true,
|
||||
)
|
||||
libmutter_cogl_path_enum_types_h = libmutter_cogl_path_enum_types[1]
|
||||
|
||||
cogl_path_sources += libmutter_cogl_path_enum_types
|
||||
|
||||
libmutter_cogl_path = shared_library('mutter-cogl-path-' + libmutter_api_version,
|
||||
sources: [cogl_path_sources, cogl_path_public_headers],
|
||||
c_args: cogl_c_args,
|
||||
include_directories: [cogl_includepath, cogl_path_includepath],
|
||||
link_depends: 'libmutter-cogl-path.map',
|
||||
dependencies: [cogl_deps],
|
||||
link_with: libmutter_cogl,
|
||||
install_rpath: pkglibdir,
|
||||
install_dir: pkglibdir,
|
||||
install: true,
|
||||
)
|
||||
libmutter_cogl_path_dep = declare_dependency(
|
||||
sources: [libmutter_cogl_path_enum_types_h],
|
||||
link_with: libmutter_cogl_path
|
||||
)
|
||||
|
||||
install_headers(cogl_path_public_headers,
|
||||
subdir: cogl_path_includedir)
|
||||
|
||||
pkg.generate(
|
||||
name: 'CoglPath',
|
||||
filebase: 'mutter-cogl-path-' + libmutter_api_version,
|
||||
description: 'A 2D path drawing library for Cogl in mutter',
|
||||
libraries: [libmutter_cogl_path],
|
||||
subdirs: join_paths(pkgname, 'cogl'),
|
||||
requires: [cogl_pkg_deps, libmutter_cogl_name],
|
||||
version: meson.project_version(),
|
||||
variables: [
|
||||
'apiversion=' + libmutter_api_version,
|
||||
],
|
||||
)
|
48
cogl/cogl/cogl-defines.h.meson
Normal file
48
cogl/cogl/cogl-defines.h.meson
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Cogl
|
||||
*
|
||||
* A Low Level GPU Graphics and Utilities API
|
||||
*
|
||||
* Copyright (C) 2007,2008,2009,2010 Intel Corporation.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use, copy,
|
||||
* modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
* of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <poll.h>
|
||||
|
||||
#define COGL_SYSDEF_POLLIN POLLIN
|
||||
#define COGL_SYSDEF_POLLPRI POLLPRI
|
||||
#define COGL_SYSDEF_POLLOUT POLLOUT
|
||||
#define COGL_SYSDEF_POLLERR POLLERR
|
||||
#define COGL_SYSDEF_POLLHUP POLLHUP
|
||||
#define COGL_SYSDEF_POLLNVAL POLLNVAL
|
||||
|
||||
#mesondefine COGL_HAS_GL
|
||||
#mesondefine CLUTTER_COGL_HAS_GL
|
||||
#mesondefine COGL_HAS_GLX_SUPPORT
|
||||
#mesondefine COGL_HAS_WAYLAND_EGL_SERVER_SUPPORT
|
||||
#mesondefine COGL_HAS_EGL_PLATFORM_XLIB_SUPPORT
|
||||
#mesondefine COGL_HAS_EGL_SUPPORT
|
||||
#mesondefine COGL_HAS_X11
|
||||
#mesondefine COGL_HAS_X11_SUPPORT
|
||||
#mesondefine COGL_HAS_XLIB
|
||||
#mesondefine COGL_HAS_XLIB_SUPPORT
|
51
cogl/cogl/libmutter-cogl.map
Normal file
51
cogl/cogl/libmutter-cogl.map
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
global:
|
||||
cogl*;
|
||||
_cogl_debug_flags;
|
||||
_cogl_atlas_new;
|
||||
_cogl_atlas_add_reorganize_callback;
|
||||
_cogl_atlas_reserve_space;
|
||||
_cogl_callback;
|
||||
_cogl_util_get_eye_planes_for_screen_poly;
|
||||
_cogl_atlas_texture_remove_reorganize_callback;
|
||||
_cogl_atlas_texture_add_reorganize_callback;
|
||||
_cogl_texture_get_format;
|
||||
_cogl_texture_foreach_sub_texture_in_region;
|
||||
_cogl_texture_set_region;
|
||||
_cogl_profile_trace_message;
|
||||
_cogl_context_get_default;
|
||||
_cogl_framebuffer_get_stencil_bits;
|
||||
_cogl_clip_stack_push_rectangle;
|
||||
_cogl_framebuffer_get_modelview_stack;
|
||||
_cogl_object_default_unref;
|
||||
_cogl_pipeline_foreach_layer_internal;
|
||||
_cogl_clip_stack_push_primitive;
|
||||
_cogl_buffer_unmap_for_fill_or_fallback;
|
||||
_cogl_framebuffer_draw_primitive;
|
||||
_cogl_debug_instances;
|
||||
_cogl_framebuffer_get_projection_stack;
|
||||
_cogl_pipeline_layer_get_texture;
|
||||
_cogl_buffer_map_for_fill_or_fallback;
|
||||
_cogl_texture_can_hardware_repeat;
|
||||
_cogl_pipeline_prune_to_n_layers;
|
||||
_cogl_primitive_draw;
|
||||
#test_;
|
||||
#unit_test_;
|
||||
_cogl_winsys_glx_get_vtable;
|
||||
_cogl_winsys_egl_xlib_get_vtable;
|
||||
_cogl_winsys_egl_get_vtable;
|
||||
_cogl_closure_disconnect;
|
||||
_cogl_onscreen_notify_complete;
|
||||
_cogl_onscreen_notify_frame_sync;
|
||||
_cogl_winsys_egl_renderer_connect_common;
|
||||
_cogl_winsys_error_quark;
|
||||
_cogl_set_error;
|
||||
_cogl_poll_renderer_add_fd;
|
||||
_cogl_poll_renderer_add_idle;
|
||||
_cogl_framebuffer_winsys_update_size;
|
||||
_cogl_winsys_egl_make_current;
|
||||
_cogl_winsys_egl_ensure_current;
|
||||
_cogl_pixel_format_get_bytes_per_pixel).*";
|
||||
local:
|
||||
*;
|
||||
}
|
531
cogl/cogl/meson.build
Normal file
531
cogl/cogl/meson.build
Normal file
@ -0,0 +1,531 @@
|
||||
cogl_cogl_includedir = join_paths(cogl_includedir, 'cogl')
|
||||
|
||||
cdata = configuration_data()
|
||||
cdata.set('COGL_HAS_GL', have_gl)
|
||||
cdata.set('CLUTTER_COGL_HAS_GL', have_gl)
|
||||
cdata.set('COGL_HAS_GLX_SUPPORT', have_glx)
|
||||
cdata.set('COGL_HAS_WAYLAND_EGL_SERVER_SUPPORT', have_wayland)
|
||||
cdata.set('COGL_HAS_EGL_PLATFORM_XLIB_SUPPORT', have_egl_xlib)
|
||||
cdata.set('COGL_HAS_EGL_SUPPORT', have_egl)
|
||||
cdata.set('COGL_HAS_X11', have_x11)
|
||||
cdata.set('COGL_HAS_X11_SUPPORT', have_x11)
|
||||
cdata.set('COGL_HAS_XLIB', have_x11)
|
||||
cdata.set('COGL_HAS_XLIB_SUPPORT', have_x11)
|
||||
|
||||
cogl_defines_h = configure_file(
|
||||
input: 'cogl-defines.h.meson',
|
||||
output: 'cogl-defines.h',
|
||||
configuration: cdata,
|
||||
install_dir: cogl_cogl_includedir,
|
||||
install: true,
|
||||
)
|
||||
|
||||
if have_gl
|
||||
cogl_gl_header_includes = ['GL/gl.h']
|
||||
elif have_gles2
|
||||
cogl_gl_header_includes = ['GLES2/gl2.h', 'GLES2/gl2ext.h']
|
||||
else
|
||||
error('Neither GLES2 or OpenGL was enabled')
|
||||
endif
|
||||
|
||||
cogl_gl_header_includes_string = ''
|
||||
foreach gl_header : cogl_gl_header_includes
|
||||
cogl_gl_header_includes_string += '#include <@0@>\n'.format(gl_header)
|
||||
endforeach
|
||||
|
||||
built_headers = []
|
||||
|
||||
cdata = configuration_data()
|
||||
cdata.set('COGL_GL_HEADER_INCLUDES', cogl_gl_header_includes_string)
|
||||
|
||||
cogl_gl_header_h = configure_file(
|
||||
input: 'cogl-gl-header.h.in',
|
||||
output: 'cogl-gl-header.h',
|
||||
configuration: cdata,
|
||||
install: false,
|
||||
)
|
||||
built_headers += [cogl_gl_header_h]
|
||||
|
||||
if have_egl
|
||||
cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>'
|
||||
else
|
||||
cogl_egl_includes_string = ''
|
||||
endif
|
||||
|
||||
cdata = configuration_data()
|
||||
cdata.set('COGL_EGL_INCLUDES', cogl_egl_includes_string)
|
||||
cogl_egl_defines_h = configure_file(
|
||||
input: 'cogl-egl-defines.h.in',
|
||||
output: 'cogl-egl-defines.h',
|
||||
configuration: cdata,
|
||||
install: false,
|
||||
)
|
||||
built_headers += [cogl_gl_header_h]
|
||||
|
||||
cogl_deprecated_headers = [
|
||||
'deprecated/cogl-material-compat.h',
|
||||
'deprecated/cogl-vertex-buffer.h',
|
||||
'deprecated/cogl-shader.h',
|
||||
'deprecated/cogl-clutter.h',
|
||||
'deprecated/cogl-type-casts.h',
|
||||
'deprecated/cogl-auto-texture.h',
|
||||
]
|
||||
|
||||
cogl_deprecated_nonintrospected_headers = [
|
||||
'deprecated/cogl-framebuffer-deprecated.h',
|
||||
]
|
||||
|
||||
cogl_headers = [
|
||||
'cogl1-context.h',
|
||||
'cogl-bitmap.h',
|
||||
'cogl-color.h',
|
||||
'cogl-matrix.h',
|
||||
'cogl-offscreen.h',
|
||||
'cogl-primitives.h',
|
||||
'cogl-texture.h',
|
||||
'cogl-types.h',
|
||||
'cogl.h',
|
||||
]
|
||||
|
||||
cogl_nonintrospected_headers = [
|
||||
'cogl-deprecated.h',
|
||||
'cogl-pango.h',
|
||||
'cogl-object.h',
|
||||
'cogl-renderer.h',
|
||||
'cogl-swap-chain.h',
|
||||
'cogl-onscreen-template.h',
|
||||
'cogl-display.h',
|
||||
'cogl-context.h',
|
||||
'cogl-pipeline.h',
|
||||
'cogl-pipeline-state.h',
|
||||
'cogl-pipeline-layer-state.h',
|
||||
'cogl-snippet.h',
|
||||
'cogl-gles2.h',
|
||||
'cogl-gles2-types.h',
|
||||
'cogl-index-buffer.h',
|
||||
'cogl-attribute-buffer.h',
|
||||
'cogl-indices.h',
|
||||
'cogl-attribute.h',
|
||||
'cogl-primitive.h',
|
||||
'cogl-framebuffer.h',
|
||||
'cogl-onscreen.h',
|
||||
'cogl-frame-info.h',
|
||||
'cogl-vector.h',
|
||||
'cogl-euler.h',
|
||||
'cogl-output.h',
|
||||
'cogl-quaternion.h',
|
||||
'cogl-matrix-stack.h',
|
||||
'cogl-poll.h',
|
||||
'cogl-texture-3d.h',
|
||||
'cogl-texture-2d.h',
|
||||
'cogl-texture-2d-gl.h',
|
||||
'cogl-texture-rectangle.h',
|
||||
'cogl-texture-2d-sliced.h',
|
||||
'cogl-sub-texture.h',
|
||||
'cogl-atlas-texture.h',
|
||||
'cogl-meta-texture.h',
|
||||
'cogl-primitive-texture.h',
|
||||
'cogl-depth-state.h',
|
||||
'cogl-buffer.h',
|
||||
'cogl-pixel-buffer.h',
|
||||
'cogl-macros.h',
|
||||
'cogl-fence.h',
|
||||
'cogl-version.h',
|
||||
'cogl-error.h',
|
||||
'cogl-gtype-private.h',
|
||||
'cogl-glib-source.h',
|
||||
]
|
||||
|
||||
cogl_nodist_headers = [
|
||||
]
|
||||
|
||||
cogl_noop_driver_sources = [
|
||||
'driver/nop/cogl-driver-nop.c',
|
||||
'driver/nop/cogl-framebuffer-nop-private.h',
|
||||
'driver/nop/cogl-framebuffer-nop.c',
|
||||
'driver/nop/cogl-attribute-nop-private.h',
|
||||
'driver/nop/cogl-attribute-nop.c',
|
||||
'driver/nop/cogl-clip-stack-nop-private.h',
|
||||
'driver/nop/cogl-clip-stack-nop.c',
|
||||
'driver/nop/cogl-texture-2d-nop-private.h',
|
||||
'driver/nop/cogl-texture-2d-nop.c',
|
||||
]
|
||||
|
||||
cogl_gl_prototype_headers = [
|
||||
'gl-prototypes/cogl-gles2-functions.h',
|
||||
'gl-prototypes/cogl-core-functions.h',
|
||||
'gl-prototypes/cogl-in-gles-core-functions.h',
|
||||
'gl-prototypes/cogl-in-gles2-core-functions.h',
|
||||
'gl-prototypes/cogl-glsl-functions.h',
|
||||
]
|
||||
|
||||
cogl_common_driver_sources = [
|
||||
'driver/gl/cogl-util-gl-private.h',
|
||||
'driver/gl/cogl-util-gl.c',
|
||||
'driver/gl/cogl-framebuffer-gl-private.h',
|
||||
'driver/gl/cogl-framebuffer-gl.c',
|
||||
'driver/gl/cogl-texture-gl-private.h',
|
||||
'driver/gl/cogl-texture-gl.c',
|
||||
'driver/gl/cogl-texture-2d-gl-private.h',
|
||||
'driver/gl/cogl-texture-2d-gl.c',
|
||||
'driver/gl/cogl-attribute-gl-private.h',
|
||||
'driver/gl/cogl-attribute-gl.c',
|
||||
'driver/gl/cogl-clip-stack-gl-private.h',
|
||||
'driver/gl/cogl-clip-stack-gl.c',
|
||||
'driver/gl/cogl-buffer-gl-private.h',
|
||||
'driver/gl/cogl-buffer-gl.c',
|
||||
'driver/gl/cogl-pipeline-opengl.c',
|
||||
'driver/gl/cogl-pipeline-opengl-private.h',
|
||||
'driver/gl/cogl-pipeline-fragend-glsl.c',
|
||||
'driver/gl/cogl-pipeline-fragend-glsl-private.h',
|
||||
'driver/gl/cogl-pipeline-vertend-glsl.c',
|
||||
'driver/gl/cogl-pipeline-vertend-glsl-private.h',
|
||||
'driver/gl/cogl-pipeline-progend-glsl.c',
|
||||
'driver/gl/cogl-pipeline-progend-glsl-private.h',
|
||||
]
|
||||
|
||||
gl_driver_sources = [
|
||||
'driver/gl/gl/cogl-driver-gl.c',
|
||||
'driver/gl/gl/cogl-texture-driver-gl.c',
|
||||
]
|
||||
|
||||
gles_driver_sources = [
|
||||
'driver/gl/gles/cogl-driver-gles.c',
|
||||
'driver/gl/gles/cogl-texture-driver-gles.c',
|
||||
]
|
||||
|
||||
cogl_driver_sources = [
|
||||
cogl_noop_driver_sources,
|
||||
cogl_common_driver_sources,
|
||||
]
|
||||
|
||||
if have_gl
|
||||
cogl_driver_sources += gl_driver_sources
|
||||
endif
|
||||
|
||||
if have_gles2
|
||||
cogl_driver_sources += gles_driver_sources
|
||||
endif
|
||||
|
||||
cogl_sources = [
|
||||
cogl_driver_sources,
|
||||
|
||||
'winsys/cogl-winsys-private.h',
|
||||
'winsys/cogl-winsys.c',
|
||||
'cogl-private.h',
|
||||
'cogl-i18n-private.h',
|
||||
'cogl-debug.h',
|
||||
'cogl-debug-options.h',
|
||||
'cogl-gpu-info.c',
|
||||
'cogl-gpu-info-private.h',
|
||||
'cogl-context-private.h',
|
||||
'cogl-context.c',
|
||||
'cogl-renderer-private.h',
|
||||
'cogl-renderer.h',
|
||||
'cogl-renderer.c',
|
||||
'cogl-swap-chain-private.h',
|
||||
'cogl-swap-chain.h',
|
||||
'cogl-swap-chain.c',
|
||||
'cogl-onscreen-template-private.h',
|
||||
'cogl-onscreen-template.h',
|
||||
'cogl-onscreen-template.c',
|
||||
'cogl-display-private.h',
|
||||
'cogl-display.h',
|
||||
'cogl-display.c',
|
||||
'cogl-driver.h',
|
||||
'cogl.c',
|
||||
'cogl-object-private.h',
|
||||
'cogl-object.h',
|
||||
'cogl-object.c',
|
||||
'cogl-util.h',
|
||||
'cogl-util.c',
|
||||
'cogl-bitmap-private.h',
|
||||
'cogl-bitmap.c',
|
||||
'cogl-bitmap-conversion.c',
|
||||
'cogl-bitmap-packing.h',
|
||||
'cogl-primitives-private.h',
|
||||
'cogl-primitives.h',
|
||||
'cogl-primitives.c',
|
||||
'cogl-bitmap-pixbuf.c',
|
||||
'cogl-clip-stack.h',
|
||||
'cogl-clip-stack.c',
|
||||
'cogl-feature-private.h',
|
||||
'cogl-feature-private.c',
|
||||
'cogl-color-private.h',
|
||||
'cogl-color.c',
|
||||
'cogl-buffer-private.h',
|
||||
'cogl-buffer.c',
|
||||
'cogl-pixel-buffer-private.h',
|
||||
'cogl-pixel-buffer.c',
|
||||
'cogl-index-buffer-private.h',
|
||||
'cogl-index-buffer.c',
|
||||
'cogl-attribute-buffer-private.h',
|
||||
'cogl-attribute-buffer.c',
|
||||
'cogl-indices-private.h',
|
||||
'cogl-indices.c',
|
||||
'cogl-attribute-private.h',
|
||||
'cogl-attribute.c',
|
||||
'cogl-primitive-private.h',
|
||||
'cogl-primitive.c',
|
||||
'cogl-matrix.c',
|
||||
'cogl-vector.c',
|
||||
'cogl-euler.c',
|
||||
'cogl-quaternion-private.h',
|
||||
'cogl-quaternion.c',
|
||||
'cogl-matrix-private.h',
|
||||
'cogl-matrix-stack.c',
|
||||
'cogl-matrix-stack-private.h',
|
||||
'cogl-depth-state.c',
|
||||
'cogl-depth-state-private.h',
|
||||
'cogl-node.c',
|
||||
'cogl-node-private.h',
|
||||
'cogl-pipeline.c',
|
||||
'cogl-pipeline-private.h',
|
||||
'cogl-pipeline-layer.c',
|
||||
'cogl-pipeline-layer-private.h',
|
||||
'cogl-pipeline-state.c',
|
||||
'cogl-pipeline-layer-state-private.h',
|
||||
'cogl-pipeline-layer-state.c',
|
||||
'cogl-pipeline-state-private.h',
|
||||
'cogl-pipeline-debug.c',
|
||||
'cogl-glsl-shader.c',
|
||||
'cogl-glsl-shader-private.h',
|
||||
'cogl-glsl-shader-boilerplate.h',
|
||||
'cogl-pipeline-snippet-private.h',
|
||||
'cogl-pipeline-snippet.c',
|
||||
'cogl-pipeline-cache.h',
|
||||
'cogl-pipeline-cache.c',
|
||||
'cogl-pipeline-hash-table.h',
|
||||
'cogl-pipeline-hash-table.c',
|
||||
'cogl-sampler-cache.c',
|
||||
'cogl-sampler-cache-private.h',
|
||||
'cogl-blend-string.c',
|
||||
'cogl-blend-string.h',
|
||||
'cogl-debug.c',
|
||||
'cogl-sub-texture-private.h',
|
||||
'cogl-texture-private.h',
|
||||
'cogl-texture-2d-private.h',
|
||||
'cogl-texture-2d-sliced-private.h',
|
||||
'cogl-texture-3d-private.h',
|
||||
'cogl-texture-driver.h',
|
||||
'cogl-sub-texture.c',
|
||||
'cogl-texture.c',
|
||||
'cogl-texture-2d.c',
|
||||
'cogl-texture-2d-sliced.c',
|
||||
'cogl-texture-3d.c',
|
||||
'cogl-texture-rectangle-private.h',
|
||||
'cogl-texture-rectangle.c',
|
||||
'cogl-rectangle-map.h',
|
||||
'cogl-rectangle-map.c',
|
||||
'cogl-atlas.h',
|
||||
'cogl-atlas.c',
|
||||
'cogl-atlas-texture-private.h',
|
||||
'cogl-atlas-texture.c',
|
||||
'cogl-meta-texture.c',
|
||||
'cogl-primitive-texture.c',
|
||||
'cogl-blit.h',
|
||||
'cogl-blit.c',
|
||||
'cogl-spans.h',
|
||||
'cogl-spans.c',
|
||||
'cogl-journal-private.h',
|
||||
'cogl-journal.c',
|
||||
'cogl-frame-info-private.h',
|
||||
'cogl-frame-info.c',
|
||||
'cogl-framebuffer-private.h',
|
||||
'cogl-framebuffer.c',
|
||||
'cogl-onscreen-private.h',
|
||||
'cogl-onscreen.c',
|
||||
'cogl-output-private.h',
|
||||
'cogl-output.c',
|
||||
'cogl-profile.h',
|
||||
'cogl-profile.c',
|
||||
'cogl-flags.h',
|
||||
'cogl-bitmask.h',
|
||||
'cogl-bitmask.c',
|
||||
'cogl-gtype.c',
|
||||
'cogl-gtype-private.h',
|
||||
'cogl-point-in-poly-private.h',
|
||||
'cogl-point-in-poly.c',
|
||||
'cogl-list.c',
|
||||
'cogl-list.h',
|
||||
'winsys/cogl-winsys-stub-private.h',
|
||||
'winsys/cogl-winsys-stub.c',
|
||||
'cogl-config-private.h',
|
||||
'cogl-config.c',
|
||||
'cogl-boxed-value.h',
|
||||
'cogl-boxed-value.c',
|
||||
'cogl-snippet-private.h',
|
||||
'cogl-snippet.c',
|
||||
'cogl-poll-private.h',
|
||||
'cogl-poll.c',
|
||||
'gl-prototypes/cogl-all-functions.h',
|
||||
'gl-prototypes/cogl-fixed-functions.h',
|
||||
'cogl-memory-stack-private.h',
|
||||
'cogl-memory-stack.c',
|
||||
'cogl-magazine-private.h',
|
||||
'cogl-magazine.c',
|
||||
'cogl-gles2-context-private.h',
|
||||
'cogl-gles2-context.c',
|
||||
'cogl-error-private.h',
|
||||
'cogl-error.c',
|
||||
'cogl-closure-list-private.h',
|
||||
'cogl-closure-list.c',
|
||||
'cogl-fence.c',
|
||||
'cogl-fence-private.h',
|
||||
'deprecated/cogl-vertex-buffer-private.h',
|
||||
'deprecated/cogl-vertex-buffer.c',
|
||||
'deprecated/cogl-material-compat.c',
|
||||
'deprecated/cogl-program.c',
|
||||
'deprecated/cogl-program-private.h',
|
||||
'deprecated/cogl-auto-texture.c',
|
||||
'deprecated/cogl-shader-private.h',
|
||||
'deprecated/cogl-shader.c',
|
||||
'deprecated/cogl-clutter.c',
|
||||
'deprecated/cogl-framebuffer-deprecated.c',
|
||||
'cogl-glib-source.c',
|
||||
'cogl-mutter.h',
|
||||
]
|
||||
|
||||
if have_x11
|
||||
cogl_nonintrospected_headers += [
|
||||
'winsys/cogl-texture-pixmap-x11.h',
|
||||
'cogl-xlib.h',
|
||||
]
|
||||
cogl_deprecated_nonintrospected_headers += [
|
||||
'deprecated/cogl-clutter-xlib.h',
|
||||
]
|
||||
cogl_sources += [
|
||||
'cogl-x11-renderer-private.h',
|
||||
'cogl-xlib-private.h',
|
||||
'cogl-xlib-renderer-private.h',
|
||||
'cogl-xlib-renderer.c',
|
||||
'cogl-xlib.c',
|
||||
'winsys/cogl-texture-pixmap-x11-private.h',
|
||||
'winsys/cogl-texture-pixmap-x11.c',
|
||||
]
|
||||
cogl_headers += [
|
||||
'cogl-xlib-renderer.h'
|
||||
]
|
||||
endif
|
||||
|
||||
if have_glx
|
||||
cogl_nonintrospected_headers += [
|
||||
'cogl-glx.h',
|
||||
]
|
||||
cogl_sources += [
|
||||
'cogl-glx-display-private.h',
|
||||
'cogl-glx-renderer-private.h',
|
||||
'winsys/cogl-winsys-glx-feature-functions.h',
|
||||
'winsys/cogl-winsys-glx-private.h',
|
||||
'winsys/cogl-winsys-glx.c',
|
||||
]
|
||||
endif
|
||||
|
||||
if have_wayland
|
||||
cogl_nonintrospected_headers += [
|
||||
'cogl-wayland-server.h',
|
||||
]
|
||||
endif
|
||||
|
||||
if have_egl
|
||||
cogl_nonintrospected_headers += [
|
||||
'cogl-egl.h',
|
||||
cogl_egl_defines_h,
|
||||
]
|
||||
cogl_sources += [
|
||||
'cogl-egl-private.h',
|
||||
'winsys/cogl-winsys-egl.c',
|
||||
'winsys/cogl-winsys-egl-feature-functions.h',
|
||||
'winsys/cogl-winsys-egl-private.h',
|
||||
]
|
||||
endif
|
||||
|
||||
if have_egl_xlib
|
||||
cogl_sources += [
|
||||
'winsys/cogl-winsys-egl-x11.c',
|
||||
'winsys/cogl-winsys-egl-x11-private.h',
|
||||
]
|
||||
endif
|
||||
|
||||
cogl_introspected_headers = [
|
||||
cogl_headers,
|
||||
cogl_deprecated_headers,
|
||||
]
|
||||
|
||||
cogl_headers_all = [
|
||||
cogl_introspected_headers,
|
||||
cogl_nonintrospected_headers,
|
||||
cogl_deprecated_headers,
|
||||
cogl_deprecated_nonintrospected_headers,
|
||||
]
|
||||
|
||||
cogl_test_deps = []
|
||||
|
||||
if have_cogl_tests
|
||||
cogl_test_deps += [libmutter_cogl_test_fixtures_dep]
|
||||
endif
|
||||
|
||||
libmutter_cogl_name = 'mutter-cogl-' + libmutter_api_version
|
||||
libmutter_cogl = shared_library(libmutter_cogl_name,
|
||||
sources: [cogl_sources, cogl_headers_all],
|
||||
c_args: cogl_c_args,
|
||||
include_directories: cogl_includepath,
|
||||
link_depends: 'libmutter-cogl.map',
|
||||
dependencies: [cogl_deps, cogl_test_deps],
|
||||
install_rpath: pkglibdir,
|
||||
install_dir: pkglibdir,
|
||||
install: true,
|
||||
)
|
||||
libmutter_cogl_dep = declare_dependency(
|
||||
link_with: libmutter_cogl,
|
||||
)
|
||||
|
||||
if have_introspection
|
||||
libmutter_cogl_gir = gnome.generate_gir(libmutter_cogl,
|
||||
sources: cogl_introspected_headers,
|
||||
nsversion: libmutter_api_version,
|
||||
namespace: 'Cogl',
|
||||
includes: ['GL-1.0', 'GObject-2.0'],
|
||||
dependencies: [cogl_deps],
|
||||
extra_args: [
|
||||
'-UCOGL_COMPILATION',
|
||||
'-D__COGL_H_INSIDE__',
|
||||
'-D__COGL_XLIB_H_INSIDE__',
|
||||
'-D__COGL_EGL_H_INSIDE__',
|
||||
'-D__COGL_GLX_H_INSIDE__',
|
||||
'-DCOGL_GIR_SCANNING',
|
||||
'-U_GNU_SOURCE',
|
||||
],
|
||||
install_dir_gir: pkglibdir,
|
||||
install_dir_typelib: pkglibdir,
|
||||
install: true
|
||||
)
|
||||
endif
|
||||
|
||||
install_headers([
|
||||
cogl_headers,
|
||||
cogl_nonintrospected_headers,
|
||||
],
|
||||
subdir: cogl_cogl_includedir)
|
||||
|
||||
install_headers([
|
||||
cogl_deprecated_headers,
|
||||
cogl_deprecated_nonintrospected_headers,
|
||||
],
|
||||
subdir: join_paths(cogl_cogl_includedir, 'deprecated'))
|
||||
|
||||
install_headers(cogl_gl_prototype_headers,
|
||||
subdir: join_paths(cogl_cogl_includedir, 'gl-prototypes'))
|
||||
|
||||
pkg.generate(
|
||||
name: 'Cogl',
|
||||
filebase: libmutter_cogl_name,
|
||||
description: 'An object oriented GL/GLES Abstraction/Utility Layer in mutter',
|
||||
libraries: [libmutter_cogl, m_dep],
|
||||
subdirs: join_paths(pkgname, 'cogl'),
|
||||
requires: [cogl_pkg_deps],
|
||||
version: meson.project_version(),
|
||||
variables: [
|
||||
'apiversion=' + libmutter_api_version,
|
||||
],
|
||||
)
|
116
cogl/meson.build
Normal file
116
cogl/meson.build
Normal file
@ -0,0 +1,116 @@
|
||||
cogl_includedir = join_paths(pkgincludedir, 'cogl')
|
||||
cogl_srcdir = join_paths(top_srcdir, 'cogl')
|
||||
cogl_builddir = join_paths(builddir, 'cogl')
|
||||
|
||||
cogl_includepath = include_directories('.', 'cogl')
|
||||
|
||||
cdata = configuration_data()
|
||||
cdata.set('HAVE_COGL_GL', have_gl)
|
||||
cdata.set('HAVE_COGL_GLES2', have_gles2)
|
||||
cdata.set('ENABLE_UNIT_TESTS', have_cogl_tests)
|
||||
|
||||
cogl_config_h = configure_file(
|
||||
input: 'cogl-config.h.meson',
|
||||
output: 'cogl-config.h',
|
||||
configuration: cdata)
|
||||
|
||||
# TODO: Remove this when autotools support is removed
|
||||
cogl_mutter_config_h = configure_file(
|
||||
input: 'cogl-config.h.meson',
|
||||
output: 'cogl-mutter-config.h',
|
||||
configuration: cdata)
|
||||
|
||||
cogl_pkg_deps = [
|
||||
cairo_dep,
|
||||
#uprof_dep,
|
||||
glib_dep,
|
||||
gobject_dep,
|
||||
gmodule_no_export_dep,
|
||||
gdk_pixbuf_dep,
|
||||
]
|
||||
|
||||
if have_wayland
|
||||
cogl_pkg_deps += [
|
||||
wayland_server_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_egl
|
||||
cogl_pkg_deps += [
|
||||
egl_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_x11
|
||||
cogl_pkg_deps += [
|
||||
x11_dep,
|
||||
xext_dep,
|
||||
xfixes_dep,
|
||||
xdamage_dep,
|
||||
xcomposite_dep,
|
||||
xrandr_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_gl
|
||||
cogl_pkg_deps += [
|
||||
gl_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_gles2
|
||||
cogl_pkg_deps += [
|
||||
gles2_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
cogl_deps = [
|
||||
cogl_pkg_deps,
|
||||
m_dep,
|
||||
]
|
||||
|
||||
cogl_c_args = [
|
||||
'-DCOGL_LOCALEDIR="@0@"'.format(localedir),
|
||||
'-DCOGL_COMPILATION',
|
||||
]
|
||||
|
||||
if have_gl
|
||||
cogl_c_args += [
|
||||
'-DCOGL_GL_LIBNAME="@0@"'.format(gl_libname)
|
||||
]
|
||||
endif
|
||||
|
||||
if have_gles2
|
||||
cogl_c_args += [
|
||||
'-DCOGL_GLES2_LIBNAME="@0@"'.format(gles2_libname)
|
||||
]
|
||||
endif
|
||||
|
||||
cogl_debug_c_args = []
|
||||
if buildtype.startswith('debug')
|
||||
cogl_debug_c_args += [
|
||||
'-DCOGL_GL_DEBUG',
|
||||
'-DCOGL_OBJECT_DEBUG',
|
||||
'-DCOGL_ENABLE_DEBUG',
|
||||
]
|
||||
elif buildtype == 'release'
|
||||
cogl_debug_c_args += [
|
||||
'-DG_DISABLE_CHECKS',
|
||||
'-DG_DISABLE_CAST_CHECKS',
|
||||
]
|
||||
endif
|
||||
|
||||
cogl_c_args += cogl_debug_c_args
|
||||
|
||||
if have_cogl_tests
|
||||
subdir('test-fixtures')
|
||||
endif
|
||||
subdir('cogl')
|
||||
subdir('cogl-path')
|
||||
subdir('cogl-pango')
|
||||
if have_gles2
|
||||
subdir('cogl-gles2')
|
||||
endif
|
||||
if have_cogl_tests
|
||||
subdir('tests')
|
||||
endif
|
22
cogl/test-fixtures/meson.build
Normal file
22
cogl/test-fixtures/meson.build
Normal file
@ -0,0 +1,22 @@
|
||||
cogl_test_fixtures_includepath = [include_directories('.')]
|
||||
|
||||
cogl_test_fixtures_sources = [
|
||||
'test-unit.h',
|
||||
'test-utils.h',
|
||||
'test-utils.c',
|
||||
]
|
||||
|
||||
test_datadir = join_paths(cogl_srcdir, 'tests', 'data')
|
||||
|
||||
libmutter_cogl_test_fixtures = static_library('mutter-cogl-test-fixtures',
|
||||
sources: cogl_test_fixtures_sources,
|
||||
c_args: [cogl_c_args, '-DTEST_DATADIR=@0@'.format(test_datadir)],
|
||||
link_args: ['-Wl,--no-undefined', '-Wl,--unresolved-symbols=ignore-in-object-files'],
|
||||
include_directories: cogl_includepath,
|
||||
dependencies: [cogl_deps],
|
||||
install: false,
|
||||
)
|
||||
|
||||
libmutter_cogl_test_fixtures_dep = declare_dependency(
|
||||
link_with: libmutter_cogl_test_fixtures
|
||||
)
|
106
cogl/tests/conform/meson.build
Normal file
106
cogl/tests/conform/meson.build
Normal file
@ -0,0 +1,106 @@
|
||||
cogl_test_conformance_sources = [
|
||||
'test-conform-main.c',
|
||||
'test-atlas-migration.c',
|
||||
'test-blend-strings.c',
|
||||
'test-blend.c',
|
||||
'test-depth-test.c',
|
||||
'test-color-hsl.c',
|
||||
'test-color-mask.c',
|
||||
'test-backface-culling.c',
|
||||
'test-just-vertex-shader.c',
|
||||
'test-pipeline-user-matrix.c',
|
||||
'test-pipeline-uniforms.c',
|
||||
'test-pixel-buffer.c',
|
||||
'test-premult.c',
|
||||
'test-snippets.c',
|
||||
'test-wrap-modes.c',
|
||||
'test-sub-texture.c',
|
||||
'test-custom-attributes.c',
|
||||
'test-offscreen.c',
|
||||
'test-primitive.c',
|
||||
'test-texture-3d.c',
|
||||
'test-sparse-pipeline.c',
|
||||
'test-read-texture-formats.c',
|
||||
'test-write-texture-formats.c',
|
||||
'test-point-size.c',
|
||||
'test-point-size-attribute.c',
|
||||
'test-point-sprite.c',
|
||||
'test-no-gl-header.c',
|
||||
'test-version.c',
|
||||
'test-gles2-context.c',
|
||||
'test-euler-quaternion.c',
|
||||
'test-layer-remove.c',
|
||||
'test-alpha-test.c',
|
||||
'test-map-buffer-range.c',
|
||||
'test-npot-texture.c',
|
||||
'test-alpha-textures.c',
|
||||
'test-wrap-rectangle-textures.c',
|
||||
'test-texture-get-set-data.c',
|
||||
'test-framebuffer-get-bits.c',
|
||||
'test-primitive-and-journal.c',
|
||||
'test-copy-replace-texture.c',
|
||||
'test-pipeline-cache-unrefs-texture.c',
|
||||
'test-texture-no-allocate.c',
|
||||
'test-pipeline-shader-state.c',
|
||||
'test-texture-rg.c',
|
||||
'test-fence.c',
|
||||
'test-path.c',
|
||||
'test-path-clip.c',
|
||||
]
|
||||
|
||||
#unported = [
|
||||
# "test-fixed.c",
|
||||
# "test-materials.c",
|
||||
# "test-viewport.c",
|
||||
# "test-multitexture.c",
|
||||
# "test-npot-texture.c",
|
||||
# "test-object.c",
|
||||
# "test-readpixels.c",
|
||||
# "test-texture-mipmaps.c",
|
||||
# "test-texture-pixmap-x11.c",",
|
||||
# "test-texture-rectangle.c",
|
||||
# "test-vertex-buffer-contiguous.c",
|
||||
# "test-vertex-buffer-interleved.c",
|
||||
# "test-vertex-buffer-mutability.c",
|
||||
#]
|
||||
|
||||
cogl_test_conformance_includes = [
|
||||
cogl_includepath,
|
||||
cogl_test_fixtures_includepath,
|
||||
]
|
||||
|
||||
libmutter_cogl_test_conformance = executable('test-conformance',
|
||||
sources: cogl_test_conformance_sources,
|
||||
c_args: cogl_debug_c_args + [
|
||||
'-DCOGL_ENABLE_EXPERIMENTAL_API',
|
||||
'-DCOGL_DISABLE_DEPRECATED',
|
||||
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DTESTS_DATADIR="@0@/tests/data"'.format(cogl_srcdir),
|
||||
],
|
||||
include_directories: cogl_test_conformance_includes,
|
||||
dependencies: [
|
||||
cogl_deps,
|
||||
libmutter_cogl_path_dep,
|
||||
libmutter_cogl_test_fixtures_dep
|
||||
],
|
||||
link_with: [libmutter_cogl],
|
||||
install: false,
|
||||
)
|
||||
|
||||
find_unit_tests = find_program('meson/find-conform-unit-tests.sh')
|
||||
cogl_conform_unit_tests = custom_target('cogl-tests-conform-unit-tests',
|
||||
output: 'unit-tests',
|
||||
input: 'test-conform-main.c',
|
||||
command: [find_unit_tests, '@INPUT@', '@OUTPUT@'],
|
||||
install: false,
|
||||
)
|
||||
|
||||
test('cogl/conform', cogl_run_tests,
|
||||
args: [
|
||||
cogl_config_env,
|
||||
libmutter_cogl_test_conformance,
|
||||
cogl_conform_unit_tests
|
||||
],
|
||||
is_parallel: false,
|
||||
timeout: 60,
|
||||
)
|
10
cogl/tests/conform/meson/find-conform-unit-tests.sh
Executable file
10
cogl/tests/conform/meson/find-conform-unit-tests.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
inputfile="$1"
|
||||
outputfile="$2"
|
||||
|
||||
echo > "$outputfile"
|
||||
|
||||
sed -n -e 's/^ \{1,\}ADD_TEST *( *\([a-zA-Z0-9_]\{1,\}\).*/\1/p' "$1" | while read test; do
|
||||
echo $test >> $outputfile
|
||||
done
|
14
cogl/tests/meson.build
Normal file
14
cogl/tests/meson.build
Normal file
@ -0,0 +1,14 @@
|
||||
cogl_run_tests = find_program('run-tests.sh')
|
||||
|
||||
cdata = configuration_data()
|
||||
cdata.set('HAVE_GL', have_gl.to_int())
|
||||
cdata.set('HAVE_GLES2', have_gles2.to_int())
|
||||
|
||||
cogl_config_env = configure_file(
|
||||
input: 'config.env.in',
|
||||
output: 'config.env',
|
||||
configuration: cdata)
|
||||
|
||||
subdir('conform')
|
||||
subdir('unit')
|
||||
subdir('micro-perf')
|
15
cogl/tests/micro-perf/meson.build
Normal file
15
cogl/tests/micro-perf/meson.build
Normal file
@ -0,0 +1,15 @@
|
||||
cogl_test_journal_sources = [
|
||||
'test-journal.c',
|
||||
]
|
||||
|
||||
cogl_test_journal = executable('test-journal',
|
||||
sources: cogl_test_journal_sources,
|
||||
c_args: cogl_debug_c_args + [
|
||||
'-DCOGL_DISABLE_DEPRECATED',
|
||||
'-DTESTS_DATADIR="@0@"'.format(join_paths(cogl_srcdir, 'tests/data')),
|
||||
],
|
||||
include_directories: cogl_includepath,
|
||||
dependencies: cogl_deps,
|
||||
link_with: [libmutter_cogl],
|
||||
install: false,
|
||||
)
|
38
cogl/tests/unit/meson.build
Normal file
38
cogl/tests/unit/meson.build
Normal file
@ -0,0 +1,38 @@
|
||||
cogl_test_unit_sources = [
|
||||
'test-unit-main.c',
|
||||
]
|
||||
|
||||
cogl_test_unit_includes = [
|
||||
cogl_includepath,
|
||||
cogl_test_fixtures_includepath,
|
||||
]
|
||||
|
||||
libmutter_cogl_test_unit = executable('test-unit',
|
||||
sources: cogl_test_unit_sources,
|
||||
c_args: cogl_debug_c_args + [
|
||||
'-DCOGL_DISABLE_DEPRECATED',
|
||||
'-DCOGL_COMPILATION',
|
||||
'-DTESTS_DATADIR="@0@/tests/data"'.format(cogl_srcdir),
|
||||
],
|
||||
include_directories: cogl_test_unit_includes,
|
||||
dependencies: [cogl_deps, libmutter_cogl_test_fixtures_dep],
|
||||
link_with: [libmutter_cogl, libmutter_cogl_path],
|
||||
install: false,
|
||||
)
|
||||
|
||||
find_unit_tests = find_program('meson/find-unit-tests.sh')
|
||||
cogl_unit_unit_tests = custom_target('cogl-tests-unit-unit-tests',
|
||||
output: 'unit-tests',
|
||||
input: libmutter_cogl,
|
||||
command: [find_unit_tests, '@INPUT@', '@OUTPUT@'],
|
||||
install: false,
|
||||
)
|
||||
|
||||
test('cogl/unit', cogl_run_tests,
|
||||
args: [
|
||||
cogl_config_env,
|
||||
libmutter_cogl_test_unit,
|
||||
cogl_unit_unit_tests
|
||||
],
|
||||
is_parallel: false,
|
||||
)
|
6
cogl/tests/unit/meson/find-unit-tests.sh
Executable file
6
cogl/tests/unit/meson/find-unit-tests.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
inputfile="$1"
|
||||
outputfile="$2"
|
||||
|
||||
nm "$inputfile" | grep '[DR] _\?unit_test_'|sed 's/.\+ [DR] _\?//' > "$outputfile"
|
65
config.h.meson
Normal file
65
config.h.meson
Normal file
@ -0,0 +1,65 @@
|
||||
/* The prefix for our gettext translation domains. */
|
||||
#mesondefine GETTEXT_PACKAGE
|
||||
|
||||
/* Version number of package */
|
||||
#mesondefine VERSION
|
||||
|
||||
/* Version number of package */
|
||||
#mesondefine PACKAGE_VERSION
|
||||
|
||||
/* Search path for plugins */
|
||||
#mesondefine MUTTER_PLUGIN_DIR
|
||||
|
||||
/* */
|
||||
#mesondefine MUTTER_LOCALEDIR
|
||||
|
||||
/* */
|
||||
#mesondefine MUTTER_LIBEXECDIR
|
||||
|
||||
/* */
|
||||
#mesondefine MUTTER_PKGDATADIR
|
||||
|
||||
/* Defined if EGL support is enabled */
|
||||
#mesondefine HAVE_EGL
|
||||
|
||||
/* Defined if EGLDevice support is enabled */
|
||||
#mesondefine HAVE_EGL_DEVICE
|
||||
|
||||
/* Defined if EGLStream support is enabled */
|
||||
#mesondefine HAVE_WAYLAND_EGLSTREAM
|
||||
|
||||
/* Building with libcanberra for playing sounds */
|
||||
#mesondefine HAVE_LIBCANBERRA
|
||||
|
||||
/* Building with gudev for device type detection */
|
||||
#mesondefine HAVE_LIBGUDEV
|
||||
|
||||
/* Building with libwacom for advanced tablet management */
|
||||
#mesondefine HAVE_LIBWACOM
|
||||
|
||||
/* Define if you want to enable the native (KMS) backend based on systemd */
|
||||
#mesondefine HAVE_NATIVE_BACKEND
|
||||
|
||||
/* Define if you want to enable Wayland support */
|
||||
#mesondefine HAVE_WAYLAND
|
||||
|
||||
/* Defined if screen cast and remote desktop support is enabled */
|
||||
#mesondefine HAVE_REMOTE_DESKTOP
|
||||
|
||||
/* Building with SM support */
|
||||
#mesondefine HAVE_SM
|
||||
|
||||
/* Building with startup notification support */
|
||||
#mesondefine HAVE_STARTUP_NOTIFICATION
|
||||
|
||||
/* Path to Xwayland executable */
|
||||
#mesondefine XWAYLAND_PATH
|
||||
|
||||
/* Xwayland applications allowed to issue keyboard grabs */
|
||||
#mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES
|
||||
|
||||
/* XKB base prefix */
|
||||
#mesondefine XKB_BASE
|
||||
|
||||
/* Default rules for allowing Xwayland grabs */
|
||||
#mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES
|
60
data/meson.build
Normal file
60
data/meson.build
Normal file
@ -0,0 +1,60 @@
|
||||
msgfmt = find_program('msgfmt')
|
||||
|
||||
custom_target('mutter.desktop',
|
||||
input: 'mutter.desktop.in',
|
||||
output: 'mutter.desktop',
|
||||
command: [
|
||||
msgfmt,
|
||||
'--desktop', '--template',
|
||||
'@INPUT@',
|
||||
'-d', join_paths(top_srcdir, 'po'),
|
||||
'-o', '@OUTPUT@'
|
||||
],
|
||||
install: true,
|
||||
install_dir: join_paths(datadir, 'applications'),
|
||||
)
|
||||
|
||||
# Unconditionally use this dir to avoid a circular dep with gnomecc
|
||||
gnome_keybindings_keysdir = join_paths(datadir, 'gnome-control-center/keybindings')
|
||||
|
||||
keybinding_xml_files = [
|
||||
'50-mutter-navigation.xml',
|
||||
'50-mutter-system.xml',
|
||||
'50-mutter-windows.xml',
|
||||
]
|
||||
|
||||
if have_wayland
|
||||
keybinding_xml_files += [
|
||||
'50-mutter-wayland.xml',
|
||||
]
|
||||
endif
|
||||
|
||||
install_data(keybinding_xml_files,
|
||||
install_dir: gnome_keybindings_keysdir,
|
||||
)
|
||||
|
||||
xwayland_grab_default_access_rules = get_option('xwayland_grab_default_access_rules')
|
||||
|
||||
gschema_config = configuration_data()
|
||||
gschema_config.set('GETTEXT_DOMAIN', meson.project_name())
|
||||
gschema_config.set('XWAYLAND_GRAB_DEFAULT_ACCESS_RULES',
|
||||
xwayland_grab_default_access_rules)
|
||||
|
||||
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
|
||||
configure_file(
|
||||
input: 'org.gnome.mutter.gschema.xml.in',
|
||||
output: 'org.gnome.mutter.gschema.xml',
|
||||
configuration: gschema_config,
|
||||
install_dir: schemadir
|
||||
)
|
||||
|
||||
configure_file(
|
||||
input: 'org.gnome.mutter.wayland.gschema.xml.in',
|
||||
output: 'org.gnome.mutter.wayland.gschema.xml',
|
||||
configuration: gschema_config,
|
||||
install_dir: schemadir
|
||||
)
|
||||
|
||||
install_data(['mutter-schemas.convert'],
|
||||
install_dir: join_paths(datadir, 'GConf/gsettings'),
|
||||
)
|
1
doc/man/meson.build
Normal file
1
doc/man/meson.build
Normal file
@ -0,0 +1 @@
|
||||
install_man('mutter.1')
|
317
meson.build
Normal file
317
meson.build
Normal file
@ -0,0 +1,317 @@
|
||||
project('mutter', 'c',
|
||||
version: '3.30.1',
|
||||
meson_version: '>= 0.46.0',
|
||||
license: 'GPLv2+'
|
||||
)
|
||||
|
||||
mutter_plugin_api_version = '3'
|
||||
|
||||
libmutter_api_version = '3'
|
||||
|
||||
# generic version requirements
|
||||
glib_req = '>= 2.53.2'
|
||||
gi_req = '>= 0.9.5'
|
||||
gtk3_req = '>= 3.19.8'
|
||||
gdk_pixbuf_req = '>= 2.0'
|
||||
uprof_req = '>= 0.3'
|
||||
pango_req = '>= 1.2.0'
|
||||
cairo_req = '>= 1.10.0'
|
||||
pangocairo_req = '>= 1.20'
|
||||
gsettings_desktop_schemas_req = '>= 3.21.4'
|
||||
json_glib_req = '>= 0.12.0'
|
||||
upower_glib_req = '>= 0.99.0'
|
||||
xcomposite_req = '>= 0.4'
|
||||
xkbcommon_req = '>= 0.4.3'
|
||||
xfixes_req = '>= 3'
|
||||
xi_req = '>= 1.6.99.1'
|
||||
xrandr_req = '>= 1.5.0'
|
||||
libstartup_notification_req = '>= 0.7'
|
||||
libcanberra_gtk3_req = '>= 0.26'
|
||||
libwacom_req = '>= 0.13'
|
||||
atk_req = '>= 2.5.3'
|
||||
|
||||
# optional version requirements
|
||||
udev_req = '>= 232'
|
||||
|
||||
# wayland version requirements
|
||||
wayland_server_req = '>= 1.13.0'
|
||||
wayland_protocols_req = '>= 1.16'
|
||||
|
||||
# native backend version requirements
|
||||
libinput_req = '>= 1.4'
|
||||
gbm_req = '>= 10.3'
|
||||
|
||||
# screen cast version requirements
|
||||
libpipewire_req = '>= 0.2.2'
|
||||
|
||||
gnome = import('gnome')
|
||||
pkg = import('pkgconfig')
|
||||
i18n = import('i18n')
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
prefix = get_option('prefix')
|
||||
|
||||
bindir = join_paths(prefix, get_option('bindir'))
|
||||
datadir = join_paths(prefix, get_option('datadir'))
|
||||
libdir = join_paths(prefix, get_option('libdir'))
|
||||
libexecdir = join_paths(prefix, get_option('libexecdir'))
|
||||
includedir = join_paths(prefix, get_option('includedir'))
|
||||
sysconfdir = get_option('sysconfdir')
|
||||
|
||||
pkgname = '@0@-@1@'.format(meson.project_name(), libmutter_api_version)
|
||||
|
||||
pkgdatadir = join_paths(datadir, pkgname)
|
||||
pkglibdir = join_paths(libdir, pkgname)
|
||||
pkgincludedir = join_paths(includedir, pkgname)
|
||||
|
||||
gettext_package = meson.project_name()
|
||||
localedir = join_paths(datadir, 'locale')
|
||||
|
||||
top_srcdir = meson.current_source_dir()
|
||||
builddir = meson.current_build_dir()
|
||||
|
||||
m_dep = cc.find_library('m', required: true)
|
||||
x11_dep = dependency('x11')
|
||||
gtk3_dep = dependency('gtk+-3.0', version: gtk3_req)
|
||||
gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0')
|
||||
pango_dep = dependency('pango', version: pango_req)
|
||||
cairo_dep = dependency('cairo', version: cairo_req)
|
||||
cairo_gobject_dep = dependency('cairo-gobject', version: cairo_req)
|
||||
pangocairo_dep = dependency('pangocairo', version: pangocairo_req)
|
||||
gsettings_desktop_schemas_dep = dependency('gsettings-desktop-schemas',
|
||||
version: gsettings_desktop_schemas_req)
|
||||
glib_dep = dependency('glib-2.0', version: glib_req)
|
||||
gio_dep = dependency('gio-unix-2.0', version: glib_req)
|
||||
gio_unix_dep = dependency('gio-unix-2.0', version: glib_req)
|
||||
gobject_dep = dependency('gobject-2.0', version: glib_req)
|
||||
gthread_dep = dependency('gobject-2.0', version: glib_req)
|
||||
gmodule_no_export_dep = dependency('gmodule-no-export-2.0', version: glib_req)
|
||||
gnome_settings_daemon_dep = dependency('gnome-settings-daemon')
|
||||
json_glib_dep = dependency('json-glib-1.0', version: json_glib_req)
|
||||
gnome_desktop_dep = dependency('gnome-desktop-3.0')
|
||||
xcomposite_dep = dependency('xcomposite', version: xcomposite_req)
|
||||
xcursor_dep = dependency('xcursor')
|
||||
xdamage_dep = dependency('xdamage')
|
||||
xext_dep = dependency('xext')
|
||||
xfixes_dep = dependency('xfixes', version: xfixes_req)
|
||||
xi_dep = dependency('xi', version: xi_req)
|
||||
xtst_dep = dependency('xtst')
|
||||
xkbfile_dep = dependency('xkbfile')
|
||||
xkeyboard_config_dep = dependency('xkeyboard-config')
|
||||
xkbcommon_dep = dependency('xkbcommon', version: xkbcommon_req)
|
||||
xkbcommon_x11_dep = dependency('xkbcommon-x11')
|
||||
xrender_dep = dependency('xrender')
|
||||
x11_xcb_dep = dependency('x11-xcb')
|
||||
xrandr_dep = dependency('xrandr', version: xrandr_req)
|
||||
xcb_randr_dep = dependency('xcb-randr')
|
||||
xcb_res_dep = dependency('xcb-res')
|
||||
xinerama_dep = dependency('xinerama')
|
||||
ice_dep = dependency('ice')
|
||||
atk_dep = dependency('atk', version: atk_req)
|
||||
|
||||
# For now always require X11 support
|
||||
have_x11 = true
|
||||
|
||||
have_gl = get_option('opengl')
|
||||
if have_gl
|
||||
gl_dep = dependency('gl')
|
||||
gl_libname = get_option('opengl_libname')
|
||||
endif
|
||||
|
||||
have_egl = get_option('egl')
|
||||
if have_egl
|
||||
egl_dep = dependency('egl')
|
||||
endif
|
||||
|
||||
have_glx = get_option('glx')
|
||||
if have_glx
|
||||
if not have_gl
|
||||
error('GLX support requires OpenGL to be enabled')
|
||||
endif
|
||||
endif
|
||||
|
||||
have_egl_xlib = have_egl and have_x11
|
||||
|
||||
have_gles2 = get_option('gles2')
|
||||
if have_gles2
|
||||
gles2_dep = dependency('glesv2')
|
||||
gles2_libname = get_option('gles2_libname')
|
||||
|
||||
if not have_egl
|
||||
error('GLESv2 support requires EGL to be enabled')
|
||||
endif
|
||||
endif
|
||||
|
||||
have_wayland = get_option('wayland')
|
||||
if have_wayland
|
||||
wayland_server_dep = dependency('wayland-server', version: wayland_server_req)
|
||||
wayland_protocols_dep = dependency('wayland-protocols',
|
||||
version: wayland_protocols_req)
|
||||
wayland_egl_dep = dependency('wayland-egl')
|
||||
|
||||
if not have_egl
|
||||
error('Wayland support requires EGL to be enabled')
|
||||
endif
|
||||
endif
|
||||
|
||||
have_libgudev = get_option('udev')
|
||||
if have_libgudev
|
||||
libudev_dep = dependency('libudev', version: udev_req)
|
||||
gudev_dep = dependency('gudev-1.0', version: udev_req)
|
||||
endif
|
||||
|
||||
have_native_backend = get_option('native_backend')
|
||||
if have_native_backend
|
||||
libdrm_dep = dependency('libdrm')
|
||||
libgbm_dep = dependency('gbm', version: gbm_req)
|
||||
libinput_dep = dependency('libinput', version: libinput_req)
|
||||
|
||||
libsystemd_dep = dependency('libsystemd')
|
||||
if libsystemd_dep.found()
|
||||
logind_provider_dep = libsystemd_dep
|
||||
else
|
||||
logind_provider_dep = dependency('libelogind')
|
||||
endif
|
||||
|
||||
if not have_egl
|
||||
error('The native backend requires EGL to be enabled')
|
||||
endif
|
||||
|
||||
if not have_gles2
|
||||
error('The native backend requires GLESv2 to be enabled')
|
||||
endif
|
||||
|
||||
if not have_libgudev
|
||||
error('The native backend requires udev to be enabled')
|
||||
endif
|
||||
endif
|
||||
|
||||
have_egl_device = get_option('egl_device')
|
||||
|
||||
have_wayland_eglstream = get_option('wayland_eglstream')
|
||||
if have_wayland_eglstream
|
||||
wayland_eglstream_protocols_dep = dependency('wayland-eglstream-protocols')
|
||||
dl_dep = cc.find_library('dl', required: true)
|
||||
|
||||
if not have_wayland
|
||||
error('Wayland EGLStream support requires Wayland to be enabled')
|
||||
endif
|
||||
endif
|
||||
|
||||
have_sm = get_option('sm')
|
||||
if have_sm
|
||||
sm_dep = dependency('sm')
|
||||
endif
|
||||
|
||||
have_libcanberra = get_option('libcanberra')
|
||||
if have_libcanberra
|
||||
libcanberra_gtk3_dep = dependency('libcanberra-gtk3', version: libcanberra_gtk3_req)
|
||||
endif
|
||||
|
||||
have_libwacom = get_option('libwacom')
|
||||
if have_libwacom
|
||||
libwacom_dep = dependency('libwacom', version: libwacom_req)
|
||||
endif
|
||||
|
||||
have_pango_ft2 = get_option('pango_ft2')
|
||||
if have_pango_ft2
|
||||
pangoft2_dep = dependency('pangoft2')
|
||||
endif
|
||||
|
||||
have_startup_notification = get_option('startup_notification')
|
||||
if have_startup_notification
|
||||
libstartup_notification_dep = dependency('libstartup-notification-1.0',
|
||||
version: libstartup_notification_req)
|
||||
endif
|
||||
|
||||
have_remote_desktop = get_option('remote_desktop')
|
||||
if have_remote_desktop
|
||||
libpipewire_dep = dependency('libpipewire-0.2', version: libpipewire_req)
|
||||
endif
|
||||
|
||||
have_introspection = get_option('introspection')
|
||||
if have_introspection
|
||||
gobject_introspection_dep = dependency('gobject-introspection-1.0')
|
||||
endif
|
||||
|
||||
have_cogl_tests = get_option('cogl_tests')
|
||||
have_clutter_tests = get_option('clutter_tests')
|
||||
|
||||
have_tests = get_option('tests')
|
||||
if have_tests
|
||||
if not have_wayland
|
||||
error('Tests require Wayland to be enabled')
|
||||
endif
|
||||
endif
|
||||
|
||||
required_functions = [
|
||||
'ffs',
|
||||
'clz',
|
||||
]
|
||||
foreach function : required_functions
|
||||
if not cc.has_function(function)
|
||||
error('Required function ' + function + ' missing')
|
||||
endif
|
||||
endforeach
|
||||
|
||||
add_project_arguments('-D_GNU_SOURCE', language: 'c')
|
||||
|
||||
debug_c_args = []
|
||||
buildtype = get_option('buildtype')
|
||||
if buildtype.startswith('debug')
|
||||
debug_c_args += '-DG_ENABLE_DEBUG'
|
||||
endif
|
||||
add_project_arguments(debug_c_args, language: 'c')
|
||||
|
||||
cc.compiles('void main (void) { __builtin_ffsl (0); __builtin_popcountl (0); }')
|
||||
|
||||
cdata = configuration_data()
|
||||
cdata.set_quoted('GETTEXT_PACKAGE', gettext_package)
|
||||
cdata.set_quoted('VERSION', meson.project_version())
|
||||
cdata.set_quoted('PACKAGE_VERSION', meson.project_version())
|
||||
|
||||
cdata.set('HAVE_EGL', have_egl)
|
||||
cdata.set('HAVE_WAYLAND', have_wayland)
|
||||
cdata.set('HAVE_NATIVE_BACKEND', have_native_backend)
|
||||
cdata.set('HAVE_REMOTE_DESKTOP', have_remote_desktop)
|
||||
cdata.set('HAVE_EGL_DEVICE', have_egl_device)
|
||||
cdata.set('HAVE_WAYLAND_EGLSTREAM', have_wayland_eglstream)
|
||||
cdata.set('HAVE_LIBGUDEV', have_libgudev)
|
||||
cdata.set('HAVE_LIBCANBERRA', have_libcanberra)
|
||||
cdata.set('HAVE_LIBWACOM', have_libwacom)
|
||||
cdata.set('HAVE_SM', have_sm)
|
||||
cdata.set('HAVE_STARTUP_NOTIFICATION', have_startup_notification)
|
||||
cdata.set('HAVE_INTROSPECTION', have_introspection)
|
||||
|
||||
xkb_base = xkeyboard_config_dep.get_pkgconfig_variable('xkb_base')
|
||||
cdata.set_quoted('XKB_BASE', xkb_base)
|
||||
|
||||
xwayland_path = get_option('xwayland_path')
|
||||
if xwayland_path == ''
|
||||
xwayland_path = find_program('Xwayland').path()
|
||||
endif
|
||||
cdata.set_quoted('XWAYLAND_PATH', xwayland_path)
|
||||
|
||||
xwayland_grab_default_access_rules = get_option('xwayland_grab_default_access_rules')
|
||||
cdata.set_quoted('XWAYLAND_GRAB_DEFAULT_ACCESS_RULES',
|
||||
xwayland_grab_default_access_rules)
|
||||
|
||||
cdata.set_quoted('MUTTER_PLUGIN_DIR', join_paths(pkglibdir, 'plugins'))
|
||||
cdata.set_quoted('MUTTER_LOCALEDIR', localedir)
|
||||
cdata.set_quoted('MUTTER_LIBEXECDIR', libexecdir)
|
||||
cdata.set_quoted('MUTTER_PKGDATADIR', pkgdatadir)
|
||||
|
||||
config_h = configure_file(
|
||||
input: 'config.h.meson',
|
||||
output: 'config.h',
|
||||
configuration: cdata
|
||||
)
|
||||
|
||||
top_includepath = include_directories('.')
|
||||
|
||||
subdir('cogl')
|
||||
subdir('clutter')
|
||||
subdir('data')
|
||||
subdir('src')
|
||||
subdir('po')
|
||||
subdir('doc/man')
|
142
meson_options.txt
Normal file
142
meson_options.txt
Normal file
@ -0,0 +1,142 @@
|
||||
option('opengl',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable OpenGL'
|
||||
)
|
||||
|
||||
option('opengl_libname',
|
||||
type: 'string',
|
||||
value: 'libGL.so.1',
|
||||
description: 'OpenGL library file name'
|
||||
)
|
||||
|
||||
option('gles2_libname',
|
||||
type: 'string',
|
||||
value: 'libGLESv2.so',
|
||||
description: 'GLESv2 library file name'
|
||||
)
|
||||
|
||||
option('gles2',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable GLES2 support'
|
||||
)
|
||||
|
||||
option('egl',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable EGL support'
|
||||
)
|
||||
option('glx',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable GLX support'
|
||||
)
|
||||
|
||||
option('wayland',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable Wayland support'
|
||||
)
|
||||
|
||||
option('native_backend',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable the native backend'
|
||||
)
|
||||
|
||||
option('remote_desktop',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable remote desktop and screen cast support'
|
||||
)
|
||||
|
||||
option('egl_device',
|
||||
type: 'boolean',
|
||||
value: false,
|
||||
description: 'Enable EGLDevice and EGLStream renderer support'
|
||||
)
|
||||
|
||||
option('wayland_eglstream',
|
||||
type: 'boolean',
|
||||
value: false,
|
||||
description: 'Enable Wayland EGLStream support client support'
|
||||
)
|
||||
|
||||
option('udev',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable udev support when using the X11 backend'
|
||||
)
|
||||
|
||||
option('libwacom',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable libwacom support'
|
||||
)
|
||||
|
||||
option('pango_ft2',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable PangoFt2 support'
|
||||
)
|
||||
|
||||
option('libcanberra',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable libcanberra support'
|
||||
)
|
||||
|
||||
option('startup_notification',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable startup notification support'
|
||||
)
|
||||
|
||||
option('sm',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable X11 session management support'
|
||||
)
|
||||
|
||||
option('introspection',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable GObject introspection'
|
||||
)
|
||||
|
||||
option('cogl_tests',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable cogl tests'
|
||||
)
|
||||
|
||||
option('clutter_tests',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable clutter tests'
|
||||
)
|
||||
|
||||
option('tests',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable mutter tests'
|
||||
)
|
||||
|
||||
option('verbose',
|
||||
type: 'boolean',
|
||||
value: true,
|
||||
description: 'Enable verbose logging ability'
|
||||
)
|
||||
|
||||
option('xwayland_path',
|
||||
type: 'string',
|
||||
value: '',
|
||||
description: 'Path to Xwayland executable'
|
||||
)
|
||||
|
||||
option('xwayland_grab_default_access_rules',
|
||||
type: 'string',
|
||||
value: 'gnome-boxes,remote-viewer,virt-viewer,virt-manager,vinagre,vncviewer,Xephyr',
|
||||
description: 'Comma delimited list of applications ressources or class allowed to issue X11 grabs in Xwayland'
|
||||
)
|
1
po/meson.build
Normal file
1
po/meson.build
Normal file
@ -0,0 +1 @@
|
||||
i18n.gettext(meson.project_name(), preset: 'glib')
|
20
src/compositor/plugins/meson.build
Normal file
20
src/compositor/plugins/meson.build
Normal file
@ -0,0 +1,20 @@
|
||||
default_plugin_c_args = [
|
||||
'-fPIC',
|
||||
'-DG_LOG_DOMAIN="mutter"',
|
||||
'-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()),
|
||||
]
|
||||
|
||||
default_plugin = shared_module('default',
|
||||
sources: ['default.c'],
|
||||
include_directories: mutter_includes,
|
||||
c_args: default_plugin_c_args,
|
||||
dependencies: [
|
||||
glib_dep,
|
||||
gtk3_dep,
|
||||
json_glib_dep,
|
||||
gsettings_desktop_schemas_dep,
|
||||
libmutter_clutter_dep,
|
||||
],
|
||||
install_dir: join_paths(pkglibdir, 'plugins'),
|
||||
install: true,
|
||||
)
|
815
src/meson.build
Normal file
815
src/meson.build
Normal file
@ -0,0 +1,815 @@
|
||||
mutter_includedir = join_paths(pkgincludedir, 'meta')
|
||||
|
||||
mutter_includes = [
|
||||
include_directories('.'),
|
||||
top_includepath,
|
||||
clutter_includepath,
|
||||
cogl_includepath,
|
||||
]
|
||||
|
||||
mutter_lib_deps = [
|
||||
m_dep,
|
||||
]
|
||||
|
||||
mutter_pkg_deps = [
|
||||
cairo_dep,
|
||||
gio_unix_dep,
|
||||
glib_dep,
|
||||
gmodule_no_export_dep,
|
||||
gnome_desktop_dep,
|
||||
gsettings_desktop_schemas_dep,
|
||||
gnome_settings_daemon_dep,
|
||||
gtk3_dep,
|
||||
json_glib_dep,
|
||||
pango_dep,
|
||||
xkbcommon_dep,
|
||||
]
|
||||
|
||||
if have_gl
|
||||
mutter_pkg_deps += [
|
||||
gl_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_gles2
|
||||
mutter_pkg_deps += [
|
||||
gles2_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_egl
|
||||
mutter_pkg_deps += [
|
||||
egl_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_libgudev
|
||||
mutter_pkg_deps += [
|
||||
gudev_dep,
|
||||
libudev_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_startup_notification
|
||||
mutter_pkg_deps += [
|
||||
libstartup_notification_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_libcanberra
|
||||
mutter_pkg_deps += [
|
||||
libcanberra_gtk3_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_libwacom
|
||||
mutter_pkg_deps += [
|
||||
libwacom_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_remote_desktop
|
||||
mutter_pkg_deps += [
|
||||
libpipewire_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_introspection
|
||||
mutter_pkg_deps += [
|
||||
gobject_introspection_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_x11
|
||||
mutter_pkg_deps += [
|
||||
xrandr_dep,
|
||||
x11_dep,
|
||||
xinerama_dep,
|
||||
xext_dep,
|
||||
ice_dep,
|
||||
xcomposite_dep,
|
||||
xcursor_dep,
|
||||
xdamage_dep,
|
||||
xext_dep,
|
||||
xfixes_dep,
|
||||
xi_dep,
|
||||
xkbfile_dep,
|
||||
xkeyboard_config_dep,
|
||||
xkbcommon_x11_dep,
|
||||
xrender_dep,
|
||||
x11_xcb_dep,
|
||||
xcb_randr_dep,
|
||||
xcb_res_dep,
|
||||
]
|
||||
|
||||
if have_sm
|
||||
mutter_pkg_deps += [
|
||||
sm_dep,
|
||||
]
|
||||
endif
|
||||
endif
|
||||
|
||||
if have_wayland
|
||||
mutter_pkg_deps += [
|
||||
wayland_server_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_native_backend
|
||||
mutter_pkg_deps += [
|
||||
libdrm_dep,
|
||||
libinput_dep,
|
||||
gudev_dep,
|
||||
libgbm_dep,
|
||||
logind_provider_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
if have_wayland_eglstream
|
||||
mutter_lib_deps += [
|
||||
dl_dep,
|
||||
]
|
||||
mutter_pkg_deps += [
|
||||
wayland_eglstream_protocols_dep,
|
||||
]
|
||||
endif
|
||||
|
||||
mutter_deps = [
|
||||
mutter_pkg_deps,
|
||||
mutter_lib_deps,
|
||||
]
|
||||
|
||||
mutter_c_args = [
|
||||
'-DCLUTTER_ENABLE_COMPOSITOR_API',
|
||||
'-DCLUTTER_ENABLE_EXPERIMENTAL_API',
|
||||
'-DCOGL_ENABLE_EXPERIMENTAL_API',
|
||||
'-DCOGL_ENABLE_EXPERIMENTAL_2_0_API',
|
||||
'-DCOGL_ENABLE_MUTTER_API',
|
||||
'-DCLUTTER_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
|
||||
'-DG_LOG_DOMAIN="mutter"',
|
||||
'-DSN_API_NOT_YET_FROZEN=1',
|
||||
'-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()),
|
||||
]
|
||||
|
||||
if get_option('verbose')
|
||||
mutter_c_args += [
|
||||
'-DWITH_VERBOSE_MODE'
|
||||
]
|
||||
endif
|
||||
|
||||
mutter_sources = [
|
||||
'backends/edid.h',
|
||||
'backends/edid-parse.c',
|
||||
'backends/gsm-inhibitor-flag.h',
|
||||
'backends/meta-backend.c',
|
||||
'backends/meta-backend-private.h',
|
||||
'backends/meta-barrier.c',
|
||||
'backends/meta-barrier-private.h',
|
||||
'backends/meta-crtc.c',
|
||||
'backends/meta-crtc.h',
|
||||
'backends/meta-cursor.c',
|
||||
'backends/meta-cursor.h',
|
||||
'backends/meta-cursor-renderer.c',
|
||||
'backends/meta-cursor-renderer.h',
|
||||
'backends/meta-cursor-sprite-xcursor.c',
|
||||
'backends/meta-cursor-sprite-xcursor.h',
|
||||
'backends/meta-cursor-tracker.c',
|
||||
'backends/meta-cursor-tracker-private.h',
|
||||
'backends/meta-display-config-shared.h',
|
||||
'backends/meta-dnd-private.h',
|
||||
'backends/meta-gpu.c',
|
||||
'backends/meta-gpu.h',
|
||||
'backends/meta-idle-monitor.c',
|
||||
'backends/meta-idle-monitor-dbus.c',
|
||||
'backends/meta-idle-monitor-dbus.h',
|
||||
'backends/meta-idle-monitor-private.h',
|
||||
'backends/meta-input-settings.c',
|
||||
'backends/meta-input-settings-private.h',
|
||||
'backends/meta-logical-monitor.c',
|
||||
'backends/meta-logical-monitor.h',
|
||||
'backends/meta-monitor.c',
|
||||
'backends/meta-monitor-config-manager.c',
|
||||
'backends/meta-monitor-config-manager.h',
|
||||
'backends/meta-monitor-config-migration.c',
|
||||
'backends/meta-monitor-config-migration.h',
|
||||
'backends/meta-monitor-config-store.c',
|
||||
'backends/meta-monitor-config-store.h',
|
||||
'backends/meta-monitor.h',
|
||||
'backends/meta-monitor-manager.c',
|
||||
'backends/meta-monitor-manager-dummy.c',
|
||||
'backends/meta-monitor-manager-dummy.h',
|
||||
'backends/meta-monitor-manager-private.h',
|
||||
'backends/meta-orientation-manager.c',
|
||||
'backends/meta-orientation-manager.h',
|
||||
'backends/meta-output.c',
|
||||
'backends/meta-output.h',
|
||||
'backends/meta-pointer-constraint.c',
|
||||
'backends/meta-pointer-constraint.h',
|
||||
'backends/meta-remote-access-controller-private.h',
|
||||
'backends/meta-remote-access-controller.c',
|
||||
'backends/meta-renderer.c',
|
||||
'backends/meta-renderer.h',
|
||||
'backends/meta-renderer-view.c',
|
||||
'backends/meta-renderer-view.h',
|
||||
'backends/meta-settings.c',
|
||||
'backends/meta-settings-private.h',
|
||||
'backends/meta-stage.c',
|
||||
'backends/meta-stage-private.h',
|
||||
'backends/x11/cm/meta-backend-x11-cm.c',
|
||||
'backends/x11/cm/meta-backend-x11-cm.h',
|
||||
'backends/x11/cm/meta-cursor-sprite-xfixes.c',
|
||||
'backends/x11/cm/meta-cursor-sprite-xfixes.h',
|
||||
'backends/x11/cm/meta-renderer-x11-cm.c',
|
||||
'backends/x11/cm/meta-renderer-x11-cm.h',
|
||||
'backends/x11/meta-backend-x11.c',
|
||||
'backends/x11/meta-backend-x11.h',
|
||||
'backends/x11/meta-barrier-x11.c',
|
||||
'backends/x11/meta-barrier-x11.h',
|
||||
'backends/x11/meta-clutter-backend-x11.c',
|
||||
'backends/x11/meta-clutter-backend-x11.h',
|
||||
'backends/x11/meta-crtc-xrandr.c',
|
||||
'backends/x11/meta-crtc-xrandr.h',
|
||||
'backends/x11/meta-cursor-renderer-x11.c',
|
||||
'backends/x11/meta-cursor-renderer-x11.h',
|
||||
'backends/x11/meta-gpu-xrandr.c',
|
||||
'backends/x11/meta-gpu-xrandr.h',
|
||||
'backends/x11/meta-input-settings-x11.c',
|
||||
'backends/x11/meta-input-settings-x11.h',
|
||||
'backends/x11/meta-monitor-manager-xrandr.c',
|
||||
'backends/x11/meta-monitor-manager-xrandr.h',
|
||||
'backends/x11/meta-output-xrandr.c',
|
||||
'backends/x11/meta-output-xrandr.h',
|
||||
'backends/x11/meta-renderer-x11.c',
|
||||
'backends/x11/meta-renderer-x11.h',
|
||||
'backends/x11/meta-stage-x11-nested.c',
|
||||
'backends/x11/meta-stage-x11-nested.h',
|
||||
'backends/x11/nested/meta-backend-x11-nested.c',
|
||||
'backends/x11/nested/meta-backend-x11-nested.h',
|
||||
'backends/x11/nested/meta-cursor-renderer-x11-nested.c',
|
||||
'backends/x11/nested/meta-cursor-renderer-x11-nested.h',
|
||||
'backends/x11/nested/meta-renderer-x11-nested.c',
|
||||
'backends/x11/nested/meta-renderer-x11-nested.h',
|
||||
'compositor/clutter-utils.c',
|
||||
'compositor/clutter-utils.h',
|
||||
'compositor/cogl-utils.c',
|
||||
'compositor/cogl-utils.h',
|
||||
'compositor/compositor.c',
|
||||
'compositor/compositor-private.h',
|
||||
'compositor/meta-background-actor.c',
|
||||
'compositor/meta-background-actor-private.h',
|
||||
'compositor/meta-background.c',
|
||||
'compositor/meta-background-group.c',
|
||||
'compositor/meta-background-image.c',
|
||||
'compositor/meta-background-private.h',
|
||||
'compositor/meta-cullable.c',
|
||||
'compositor/meta-cullable.h',
|
||||
'compositor/meta-dnd-actor.c',
|
||||
'compositor/meta-dnd-actor-private.h',
|
||||
'compositor/meta-dnd.c',
|
||||
'compositor/meta-feedback-actor.c',
|
||||
'compositor/meta-feedback-actor-private.h',
|
||||
'compositor/meta-module.c',
|
||||
'compositor/meta-module.h',
|
||||
'compositor/meta-plugin.c',
|
||||
'compositor/meta-plugin-manager.c',
|
||||
'compositor/meta-plugin-manager.h',
|
||||
'compositor/meta-shadow-factory.c',
|
||||
'compositor/meta-shaped-texture.c',
|
||||
'compositor/meta-shaped-texture-private.h',
|
||||
'compositor/meta-surface-actor.c',
|
||||
'compositor/meta-surface-actor.h',
|
||||
'compositor/meta-surface-actor-x11.c',
|
||||
'compositor/meta-surface-actor-x11.h',
|
||||
'compositor/meta-sync-ring.c',
|
||||
'compositor/meta-sync-ring.h',
|
||||
'compositor/meta-texture-rectangle.c',
|
||||
'compositor/meta-texture-rectangle.h',
|
||||
'compositor/meta-texture-tower.c',
|
||||
'compositor/meta-texture-tower.h',
|
||||
'compositor/meta-window-actor.c',
|
||||
'compositor/meta-window-actor-private.h',
|
||||
'compositor/meta-window-group.c',
|
||||
'compositor/meta-window-group-private.h',
|
||||
'compositor/meta-window-shape.c',
|
||||
'compositor/region-utils.c',
|
||||
'compositor/region-utils.h',
|
||||
'core/bell.c',
|
||||
'core/bell.h',
|
||||
'core/boxes.c',
|
||||
'core/boxes-private.h',
|
||||
'core/constraints.c',
|
||||
'core/constraints.h',
|
||||
'core/core.c',
|
||||
'core/core.h',
|
||||
'core/delete.c',
|
||||
'core/display.c',
|
||||
'core/display-private.h',
|
||||
'core/edge-resistance.c',
|
||||
'core/edge-resistance.h',
|
||||
'core/events.c',
|
||||
'core/events.h',
|
||||
'core/frame.c',
|
||||
'core/frame.h',
|
||||
'core/keybindings.c',
|
||||
'core/keybindings-private.h',
|
||||
'core/main.c',
|
||||
'core/main-private.h',
|
||||
'core/meta-accel-parse.c',
|
||||
'core/meta-accel-parse.h',
|
||||
'core/meta-border.c',
|
||||
'core/meta-border.h',
|
||||
'core/meta-close-dialog.c',
|
||||
'core/meta-close-dialog-default.c',
|
||||
'core/meta-close-dialog-default-private.h',
|
||||
'core/meta-fraction.c',
|
||||
'core/meta-fraction.h',
|
||||
'core/meta-gesture-tracker.c',
|
||||
'core/meta-gesture-tracker-private.h',
|
||||
'core/meta-inhibit-shortcuts-dialog.c',
|
||||
'core/meta-inhibit-shortcuts-dialog-default.c',
|
||||
'core/meta-inhibit-shortcuts-dialog-default-private.h',
|
||||
'core/meta-workspace-manager.c',
|
||||
'core/meta-workspace-manager-private.h',
|
||||
'core/place.c',
|
||||
'core/place.h',
|
||||
'core/prefs.c',
|
||||
'core/restart.c',
|
||||
'core/stack.c',
|
||||
'core/stack.h',
|
||||
'core/stack-tracker.c',
|
||||
'core/stack-tracker.h',
|
||||
'core/startup-notification.c',
|
||||
'core/startup-notification-private.h',
|
||||
'core/util.c',
|
||||
'core/util-private.h',
|
||||
'core/window.c',
|
||||
'core/window-private.h',
|
||||
'core/workspace.c',
|
||||
'core/workspace-private.h',
|
||||
'ui/frames.c',
|
||||
'ui/frames.h',
|
||||
'ui/theme.c',
|
||||
'ui/theme-private.h',
|
||||
'ui/ui.c',
|
||||
'ui/ui.h',
|
||||
'x11/atomnames.h',
|
||||
'x11/events.c',
|
||||
'x11/events.h',
|
||||
'x11/group.c',
|
||||
'x11/group-private.h',
|
||||
'x11/group-props.c',
|
||||
'x11/group-props.h',
|
||||
'x11/iconcache.c',
|
||||
'x11/iconcache.h',
|
||||
'x11/meta-x11-display.c',
|
||||
'x11/meta-x11-display-private.h',
|
||||
'x11/meta-x11-errors.c',
|
||||
'x11/mutter-Xatomtype.h',
|
||||
'x11/session.c',
|
||||
'x11/session.h',
|
||||
'x11/window-props.c',
|
||||
'x11/window-props.h',
|
||||
'x11/window-x11.c',
|
||||
'x11/window-x11.h',
|
||||
'x11/window-x11-private.h',
|
||||
'x11/xprops.c',
|
||||
'x11/xprops.h',
|
||||
]
|
||||
|
||||
if have_egl
|
||||
mutter_sources += [
|
||||
'backends/meta-egl.c',
|
||||
'backends/meta-egl-ext.h',
|
||||
'backends/meta-egl.h',
|
||||
]
|
||||
endif
|
||||
|
||||
if have_gles2
|
||||
mutter_sources += [
|
||||
'backends/meta-gles3.c',
|
||||
'backends/meta-gles3.h',
|
||||
'backends/meta-gles3-table.h',
|
||||
]
|
||||
endif
|
||||
|
||||
if have_remote_desktop
|
||||
mutter_sources += [
|
||||
'backends/meta-dbus-session-watcher.c',
|
||||
'backends/meta-dbus-session-watcher.h',
|
||||
'backends/meta-remote-desktop.c',
|
||||
'backends/meta-remote-desktop.h',
|
||||
'backends/meta-remote-desktop-session.c',
|
||||
'backends/meta-remote-desktop-session.h',
|
||||
'backends/meta-screen-cast.c',
|
||||
'backends/meta-screen-cast.h',
|
||||
'backends/meta-screen-cast-monitor-stream.c',
|
||||
'backends/meta-screen-cast-monitor-stream.h',
|
||||
'backends/meta-screen-cast-monitor-stream-src.c',
|
||||
'backends/meta-screen-cast-monitor-stream-src.h',
|
||||
'backends/meta-screen-cast-session.c',
|
||||
'backends/meta-screen-cast-session.h',
|
||||
'backends/meta-screen-cast-stream.c',
|
||||
'backends/meta-screen-cast-stream.h',
|
||||
'backends/meta-screen-cast-stream-src.c',
|
||||
'backends/meta-screen-cast-stream-src.h',
|
||||
]
|
||||
endif
|
||||
|
||||
if have_wayland
|
||||
mutter_sources += [
|
||||
'compositor/meta-surface-actor-wayland.c',
|
||||
'compositor/meta-surface-actor-wayland.h',
|
||||
'wayland/meta-cursor-sprite-wayland.c',
|
||||
'wayland/meta-cursor-sprite-wayland.h',
|
||||
'wayland/meta-pointer-confinement-wayland.c',
|
||||
'wayland/meta-pointer-confinement-wayland.h',
|
||||
'wayland/meta-pointer-lock-wayland.c',
|
||||
'wayland/meta-pointer-lock-wayland.h',
|
||||
'wayland/meta-wayland-actor-surface.c',
|
||||
'wayland/meta-wayland-actor-surface.h',
|
||||
'wayland/meta-wayland-buffer.c',
|
||||
'wayland/meta-wayland-buffer.h',
|
||||
'wayland/meta-wayland.c',
|
||||
'wayland/meta-wayland-cursor-surface.c',
|
||||
'wayland/meta-wayland-cursor-surface.h',
|
||||
'wayland/meta-wayland-data-device.c',
|
||||
'wayland/meta-wayland-data-device.h',
|
||||
'wayland/meta-wayland-data-device-private.h',
|
||||
'wayland/meta-wayland-dma-buf.c',
|
||||
'wayland/meta-wayland-dma-buf.h',
|
||||
'wayland/meta-wayland-gtk-shell.c',
|
||||
'wayland/meta-wayland-gtk-shell.h',
|
||||
'wayland/meta-wayland.h',
|
||||
'wayland/meta-wayland-inhibit-shortcuts.c',
|
||||
'wayland/meta-wayland-inhibit-shortcuts-dialog.c',
|
||||
'wayland/meta-wayland-inhibit-shortcuts-dialog.h',
|
||||
'wayland/meta-wayland-inhibit-shortcuts.h',
|
||||
'wayland/meta-wayland-input-device.c',
|
||||
'wayland/meta-wayland-input-device.h',
|
||||
'wayland/meta-wayland-keyboard.c',
|
||||
'wayland/meta-wayland-keyboard.h',
|
||||
'wayland/meta-wayland-legacy-xdg-shell.c',
|
||||
'wayland/meta-wayland-legacy-xdg-shell.h',
|
||||
'wayland/meta-wayland-outputs.c',
|
||||
'wayland/meta-wayland-outputs.h',
|
||||
'wayland/meta-wayland-pointer.c',
|
||||
'wayland/meta-wayland-pointer-constraints.c',
|
||||
'wayland/meta-wayland-pointer-constraints.h',
|
||||
'wayland/meta-wayland-pointer-gesture-pinch.c',
|
||||
'wayland/meta-wayland-pointer-gesture-pinch.h',
|
||||
'wayland/meta-wayland-pointer-gestures.c',
|
||||
'wayland/meta-wayland-pointer-gestures.h',
|
||||
'wayland/meta-wayland-pointer-gesture-swipe.c',
|
||||
'wayland/meta-wayland-pointer-gesture-swipe.h',
|
||||
'wayland/meta-wayland-pointer.h',
|
||||
'wayland/meta-wayland-popup.c',
|
||||
'wayland/meta-wayland-popup.h',
|
||||
'wayland/meta-wayland-private.h',
|
||||
'wayland/meta-wayland-region.c',
|
||||
'wayland/meta-wayland-region.h',
|
||||
'wayland/meta-wayland-seat.c',
|
||||
'wayland/meta-wayland-seat.h',
|
||||
'wayland/meta-wayland-shell-surface.c',
|
||||
'wayland/meta-wayland-shell-surface.h',
|
||||
'wayland/meta-wayland-subsurface.c',
|
||||
'wayland/meta-wayland-subsurface.h',
|
||||
'wayland/meta-wayland-surface.c',
|
||||
'wayland/meta-wayland-surface.h',
|
||||
'wayland/meta-wayland-tablet.c',
|
||||
'wayland/meta-wayland-tablet-cursor-surface.c',
|
||||
'wayland/meta-wayland-tablet-cursor-surface.h',
|
||||
'wayland/meta-wayland-tablet.h',
|
||||
'wayland/meta-wayland-tablet-manager.c',
|
||||
'wayland/meta-wayland-tablet-manager.h',
|
||||
'wayland/meta-wayland-tablet-pad.c',
|
||||
'wayland/meta-wayland-tablet-pad-group.c',
|
||||
'wayland/meta-wayland-tablet-pad-group.h',
|
||||
'wayland/meta-wayland-tablet-pad.h',
|
||||
'wayland/meta-wayland-tablet-pad-ring.c',
|
||||
'wayland/meta-wayland-tablet-pad-ring.h',
|
||||
'wayland/meta-wayland-tablet-pad-strip.c',
|
||||
'wayland/meta-wayland-tablet-pad-strip.h',
|
||||
'wayland/meta-wayland-tablet-seat.c',
|
||||
'wayland/meta-wayland-tablet-seat.h',
|
||||
'wayland/meta-wayland-tablet-tool.c',
|
||||
'wayland/meta-wayland-tablet-tool.h',
|
||||
'wayland/meta-wayland-text-input.c',
|
||||
'wayland/meta-wayland-text-input.h',
|
||||
'wayland/meta-wayland-text-input-legacy.c',
|
||||
'wayland/meta-wayland-text-input-legacy.h',
|
||||
'wayland/meta-wayland-touch.c',
|
||||
'wayland/meta-wayland-touch.h',
|
||||
'wayland/meta-wayland-types.h',
|
||||
'wayland/meta-wayland-versions.h',
|
||||
'wayland/meta-wayland-wl-shell.c',
|
||||
'wayland/meta-wayland-wl-shell.h',
|
||||
'wayland/meta-wayland-xdg-foreign.c',
|
||||
'wayland/meta-wayland-xdg-foreign.h',
|
||||
'wayland/meta-wayland-xdg-shell.c',
|
||||
'wayland/meta-wayland-xdg-shell.h',
|
||||
'wayland/meta-window-wayland.c',
|
||||
'wayland/meta-window-wayland.h',
|
||||
'wayland/meta-window-xwayland.c',
|
||||
'wayland/meta-window-xwayland.h',
|
||||
'wayland/meta-xwayland.c',
|
||||
'wayland/meta-xwayland-grab-keyboard.c',
|
||||
'wayland/meta-xwayland-grab-keyboard.h',
|
||||
'wayland/meta-xwayland.h',
|
||||
'wayland/meta-xwayland-private.h',
|
||||
'wayland/meta-xwayland-selection.c',
|
||||
'wayland/meta-xwayland-selection-private.h',
|
||||
]
|
||||
endif
|
||||
|
||||
if have_native_backend
|
||||
mutter_sources += [
|
||||
'backends/native/dbus-utils.c',
|
||||
'backends/native/dbus-utils.h',
|
||||
'backends/native/meta-backend-native.c',
|
||||
'backends/native/meta-backend-native.h',
|
||||
'backends/native/meta-backend-native-private.h',
|
||||
'backends/native/meta-barrier-native.c',
|
||||
'backends/native/meta-barrier-native.h',
|
||||
'backends/native/meta-clutter-backend-native.c',
|
||||
'backends/native/meta-clutter-backend-native.h',
|
||||
'backends/native/meta-crtc-kms.c',
|
||||
'backends/native/meta-crtc-kms.h',
|
||||
'backends/native/meta-cursor-renderer-native.c',
|
||||
'backends/native/meta-cursor-renderer-native.h',
|
||||
'backends/native/meta-gpu-kms.c',
|
||||
'backends/native/meta-gpu-kms.h',
|
||||
'backends/native/meta-input-settings-native.c',
|
||||
'backends/native/meta-input-settings-native.h',
|
||||
'backends/native/meta-launcher.c',
|
||||
'backends/native/meta-launcher.h',
|
||||
'backends/native/meta-monitor-manager-kms.c',
|
||||
'backends/native/meta-monitor-manager-kms.h',
|
||||
'backends/native/meta-output-kms.c',
|
||||
'backends/native/meta-output-kms.h',
|
||||
'backends/native/meta-renderer-native.c',
|
||||
'backends/native/meta-renderer-native-gles3.c',
|
||||
'backends/native/meta-renderer-native-gles3.h',
|
||||
'backends/native/meta-renderer-native.h',
|
||||
'backends/native/meta-stage-native.c',
|
||||
'backends/native/meta-stage-native.h',
|
||||
]
|
||||
endif
|
||||
|
||||
if have_wayland_eglstream
|
||||
mutter_sources += [
|
||||
'wayland/meta-wayland-egl-stream.c',
|
||||
'wayland/meta-wayland-egl-stream.h',
|
||||
]
|
||||
endif
|
||||
|
||||
mutter_built_sources = []
|
||||
|
||||
dbus_display_config_built_sources = gnome.gdbus_codegen('meta-dbus-display-config',
|
||||
'org.gnome.Mutter.DisplayConfig.xml',
|
||||
interface_prefix: 'org.gnome.Mutter.',
|
||||
namespace: 'MetaDBus',
|
||||
)
|
||||
mutter_built_sources += dbus_display_config_built_sources
|
||||
|
||||
dbus_idle_monitor_built_sources = gnome.gdbus_codegen('meta-dbus-idle-monitor',
|
||||
'org.gnome.Mutter.IdleMonitor.xml',
|
||||
interface_prefix: 'org.gnome.Mutter.',
|
||||
namespace: 'MetaDBus',
|
||||
object_manager: true,
|
||||
)
|
||||
mutter_built_sources += dbus_idle_monitor_built_sources
|
||||
|
||||
if have_native_backend
|
||||
gdbus_codegen = find_program('gdbus-codegen')
|
||||
dbus_login1_built_sources = custom_target('meta-dbus-login1',
|
||||
input: 'org.freedesktop.login1.xml',
|
||||
output: [
|
||||
'meta-dbus-login1.c',
|
||||
'meta-dbus-login1.h',
|
||||
],
|
||||
command: [
|
||||
gdbus_codegen,
|
||||
'--interface-prefix', 'org.freedesktop.login1',
|
||||
'--c-namespace', 'Login1',
|
||||
'--generate-c-code', 'meta-dbus-login1',
|
||||
'--output-directory', join_paths(builddir, 'src'),
|
||||
'--c-generate-autocleanup', 'all',
|
||||
'@INPUT@',
|
||||
]
|
||||
)
|
||||
mutter_built_sources += dbus_login1_built_sources
|
||||
endif
|
||||
|
||||
if have_remote_desktop
|
||||
dbus_remote_desktop_built_sources = gnome.gdbus_codegen('meta-dbus-remote-desktop',
|
||||
'org.gnome.Mutter.RemoteDesktop.xml',
|
||||
interface_prefix: 'org.gnome.Mutter.',
|
||||
namespace: 'MetaDBus',
|
||||
)
|
||||
mutter_built_sources += dbus_remote_desktop_built_sources
|
||||
|
||||
dbus_screen_cast_built_sources = gnome.gdbus_codegen('meta-dbus-screen-cast',
|
||||
'org.gnome.Mutter.ScreenCast.xml',
|
||||
interface_prefix: 'org.gnome.Mutter.',
|
||||
namespace: 'MetaDBus',
|
||||
)
|
||||
mutter_built_sources += dbus_screen_cast_built_sources
|
||||
endif
|
||||
|
||||
cvt = find_program('cvt')
|
||||
|
||||
gen_default_modes = find_program('backends/native/gen-default-modes.py')
|
||||
default_modes_h = custom_target('meta-default-modes',
|
||||
output: 'meta-default-modes.h',
|
||||
command: [gen_default_modes, '@OUTPUT@']
|
||||
)
|
||||
mutter_built_sources += default_modes_h
|
||||
|
||||
if have_wayland
|
||||
# Format:
|
||||
# - protocol name
|
||||
# - protocol stability ('private', 'stable' or 'unstable')
|
||||
# - protocol version (if stability is 'unstable')
|
||||
wayland_protocols = [
|
||||
['gtk-primary-selection', 'private', ],
|
||||
['gtk-shell', 'private', ],
|
||||
['gtk-text-input', 'private', ],
|
||||
['keyboard-shortcuts-inhibit', 'unstable', 'v1', ],
|
||||
['linux-dmabuf', 'unstable', 'v1', ],
|
||||
['pointer-constraints', 'unstable', 'v1', ],
|
||||
['pointer-gestures', 'unstable', 'v1', ],
|
||||
['relative-pointer', 'unstable', 'v1', ],
|
||||
['tablet', 'unstable', 'v2', ],
|
||||
['text-input', 'unstable', 'v3', ],
|
||||
['xdg-foreign', 'unstable', 'v1', ],
|
||||
['xdg-output', 'unstable', 'v1', ],
|
||||
['xdg-shell', 'unstable', 'v6', ],
|
||||
['xdg-shell', 'stable', ],
|
||||
['xwayland-keyboard-grab', 'unstable', 'v1', ],
|
||||
]
|
||||
if have_wayland_eglstream
|
||||
wayland_eglstream_protocols_dir = wayland_eglstream_protocols_dep.get_pkgconfig_variable('pkgdatadir')
|
||||
wayland_protocols += [
|
||||
['wayland-eglstream-controller', 'third-party', wayland_eglstream_protocols_dir],
|
||||
]
|
||||
endif
|
||||
|
||||
wayland_scanner = find_program('wayland-scanner')
|
||||
protocols_dir = wayland_protocols_dep.get_pkgconfig_variable('pkgdatadir')
|
||||
assert(protocols_dir != '', 'Could not get pkgdatadir from wayland-protocols.pc')
|
||||
|
||||
foreach p: wayland_protocols
|
||||
protocol_name = p.get(0)
|
||||
protocol_type = p.get(1)
|
||||
|
||||
if protocol_type == 'stable'
|
||||
output_base = protocol_name
|
||||
input = join_paths(protocols_dir,
|
||||
'@0@/@1@/@2@.xml'.format(protocol_type,
|
||||
protocol_name,
|
||||
output_base))
|
||||
elif protocol_type == 'private'
|
||||
output_base = protocol_name
|
||||
input = 'wayland/protocol/@0@.xml'.format(protocol_name)
|
||||
elif protocol_type == 'third-party'
|
||||
output_base = protocol_name
|
||||
protocol_dir = p.get(2)
|
||||
input = join_paths(protocol_dir, '@0@.xml'.format(protocol_name))
|
||||
else
|
||||
protocol_version = p.get(2)
|
||||
output_base = '@0@-@1@-@2@'.format(protocol_name,
|
||||
protocol_type,
|
||||
protocol_version)
|
||||
input = join_paths(protocols_dir,
|
||||
'@0@/@1@/@2@.xml'.format(protocol_type,
|
||||
protocol_name,
|
||||
output_base))
|
||||
endif
|
||||
|
||||
mutter_built_sources += custom_target('@0@ server header'.format(output_base),
|
||||
input: input,
|
||||
output: '@0@-server-protocol.h'.format(output_base),
|
||||
command: [
|
||||
wayland_scanner,
|
||||
'server-header',
|
||||
'@INPUT@', '@OUTPUT@',
|
||||
]
|
||||
)
|
||||
|
||||
mutter_built_sources += custom_target('@0@ source'.format(output_base),
|
||||
input: input,
|
||||
output: '@0@-protocol.c'.format(output_base),
|
||||
command: [
|
||||
wayland_scanner,
|
||||
'private-code',
|
||||
'@INPUT@', '@OUTPUT@',
|
||||
]
|
||||
)
|
||||
endforeach
|
||||
endif
|
||||
|
||||
subdir('meta')
|
||||
|
||||
mutter_built_sources += mutter_enum_types
|
||||
mutter_built_sources += mutter_version
|
||||
|
||||
libmutter_name = 'mutter-' + libmutter_api_version
|
||||
libmutter = shared_library(libmutter_name,
|
||||
sources: [
|
||||
mutter_sources,
|
||||
mutter_built_sources,
|
||||
],
|
||||
include_directories: mutter_includes,
|
||||
c_args: mutter_c_args,
|
||||
dependencies: [
|
||||
libmutter_cogl_dep,
|
||||
libmutter_clutter_dep,
|
||||
mutter_deps,
|
||||
],
|
||||
install_rpath: pkglibdir,
|
||||
install_dir: libdir,
|
||||
install: true,
|
||||
)
|
||||
|
||||
libmutter_dep = declare_dependency(
|
||||
link_with: libmutter,
|
||||
include_directories: mutter_includes,
|
||||
dependencies: [
|
||||
libmutter_cogl_dep,
|
||||
libmutter_clutter_dep,
|
||||
mutter_deps,
|
||||
],
|
||||
)
|
||||
|
||||
executable('mutter',
|
||||
sources: [
|
||||
files('core/mutter.c'),
|
||||
],
|
||||
include_directories: mutter_includes,
|
||||
c_args: mutter_c_args,
|
||||
dependencies: [libmutter_dep],
|
||||
install_dir: bindir,
|
||||
install: true,
|
||||
)
|
||||
|
||||
if have_introspection
|
||||
mutter_introspected_sources = []
|
||||
foreach source : mutter_sources
|
||||
if source.endswith('.c')
|
||||
mutter_introspected_sources += source
|
||||
endif
|
||||
endforeach
|
||||
|
||||
libmutter_gir = gnome.generate_gir(libmutter,
|
||||
sources: [
|
||||
mutter_version,
|
||||
mutter_enum_types[1],
|
||||
mutter_introspected_sources,
|
||||
mutter_public_header_files
|
||||
],
|
||||
nsversion: libmutter_api_version,
|
||||
namespace: 'Meta',
|
||||
symbol_prefix: 'meta',
|
||||
includes: [
|
||||
'GObject-2.0',
|
||||
'GDesktopEnums-3.0',
|
||||
'Gdk-3.0',
|
||||
'Gtk-3.0',
|
||||
'xlib-2.0',
|
||||
'xfixes-4.0',
|
||||
libmutter_cogl_gir[0],
|
||||
libmutter_cogl_pango_gir[0],
|
||||
libmutter_clutter_gir[0],
|
||||
],
|
||||
dependencies: [mutter_deps],
|
||||
link_with: [libmutter],
|
||||
extra_args: mutter_c_args + [
|
||||
'-U_GNU_SOURCE',
|
||||
],
|
||||
install_dir_gir: pkglibdir,
|
||||
install_dir_typelib: pkglibdir,
|
||||
install: true
|
||||
)
|
||||
endif
|
||||
|
||||
pkg.generate(
|
||||
name: 'Meta',
|
||||
filebase: 'libmutter-' + libmutter_api_version,
|
||||
description: 'Mutter compositor and window manager library',
|
||||
libraries: [libmutter],
|
||||
subdirs: pkgname,
|
||||
requires: [mutter_pkg_deps, libmutter_clutter_name],
|
||||
version: meson.project_version(),
|
||||
variables: [
|
||||
'apiversion=' + libmutter_api_version,
|
||||
'girdir=${libdir}/mutter-' + libmutter_api_version,
|
||||
'typelibdir=${libdir}/mutter-' + libmutter_api_version,
|
||||
],
|
||||
)
|
||||
|
||||
subdir('compositor/plugins')
|
||||
|
||||
if have_tests
|
||||
subdir('tests')
|
||||
endif
|
82
src/meta/meson.build
Normal file
82
src/meta/meson.build
Normal file
@ -0,0 +1,82 @@
|
||||
mutter_public_headers = [
|
||||
'barrier.h',
|
||||
'boxes.h',
|
||||
'common.h',
|
||||
'compositor.h',
|
||||
'compositor-mutter.h',
|
||||
'display.h',
|
||||
'group.h',
|
||||
'keybindings.h',
|
||||
'main.h',
|
||||
'meta-backend.h',
|
||||
'meta-background.h',
|
||||
'meta-background-actor.h',
|
||||
'meta-background-group.h',
|
||||
'meta-background-image.h',
|
||||
'meta-close-dialog.h',
|
||||
'meta-cursor-tracker.h',
|
||||
'meta-dnd.h',
|
||||
'meta-idle-monitor.h',
|
||||
'meta-inhibit-shortcuts-dialog.h',
|
||||
'meta-monitor-manager.h',
|
||||
'meta-plugin.h',
|
||||
'meta-remote-access-controller.h',
|
||||
'meta-settings.h',
|
||||
'meta-shadow-factory.h',
|
||||
'meta-shaped-texture.h',
|
||||
'meta-stage.h',
|
||||
'meta-window-actor.h',
|
||||
'meta-window-group.h',
|
||||
'meta-window-shape.h',
|
||||
'meta-workspace-manager.h',
|
||||
'prefs.h',
|
||||
'theme.h',
|
||||
'types.h',
|
||||
'util.h',
|
||||
'window.h',
|
||||
'workspace.h',
|
||||
]
|
||||
|
||||
if have_x11
|
||||
mutter_public_headers += [
|
||||
'meta-x11-display.h',
|
||||
'meta-x11-errors.h',
|
||||
]
|
||||
endif
|
||||
|
||||
install_headers(mutter_public_headers,
|
||||
subdir: mutter_includedir
|
||||
)
|
||||
|
||||
mutter_public_header_files = files(mutter_public_headers)
|
||||
|
||||
mutter_enum_types = gnome.mkenums('meta-enum-types',
|
||||
sources: [mutter_public_headers],
|
||||
c_template: 'meta-enum-types.c.in',
|
||||
h_template: 'meta-enum-types.h.in',
|
||||
install_dir: mutter_includedir,
|
||||
install_header: true,
|
||||
)
|
||||
|
||||
mutter_version_array = meson.project_version().split('.')
|
||||
mutter_version_major = mutter_version_array[0]
|
||||
mutter_version_minor = mutter_version_array[1]
|
||||
mutter_version_micro = mutter_version_array[2]
|
||||
|
||||
mutter_version_cdata = configuration_data()
|
||||
mutter_version_cdata.set('MUTTER_MAJOR_VERSION',
|
||||
'@0@'.format(mutter_version_major))
|
||||
mutter_version_cdata.set('MUTTER_MINOR_VERSION',
|
||||
'@0@'.format(mutter_version_minor))
|
||||
mutter_version_cdata.set('MUTTER_MICRO_VERSION',
|
||||
'@0@'.format(mutter_version_micro))
|
||||
mutter_version_cdata.set('MUTTER_PLUGIN_API_VERSION',
|
||||
'@0@'.format(mutter_plugin_api_version))
|
||||
|
||||
mutter_version = configure_file(
|
||||
input: 'meta-version.h.in',
|
||||
output: 'meta-version.h',
|
||||
configuration: mutter_version_cdata,
|
||||
install_dir: mutter_includedir,
|
||||
install: true,
|
||||
)
|
114
src/tests/meson.build
Normal file
114
src/tests/meson.build
Normal file
@ -0,0 +1,114 @@
|
||||
#tests_srcdir = join_paths(top_srcdir, 'srcs')
|
||||
#tests_builddir = join_paths(builddir, 'src/tests')
|
||||
tests_includepath = mutter_includes
|
||||
tests_c_args = mutter_c_args
|
||||
|
||||
tests_deps = [
|
||||
mutter_deps,
|
||||
libmutter_cogl_dep,
|
||||
libmutter_clutter_dep,
|
||||
]
|
||||
|
||||
test_env = environment()
|
||||
test_env.set('G_TEST_SRCDIR', join_paths(top_srcdir, 'src'))
|
||||
test_env.set('G_TEST_BUILDDIR', builddir)
|
||||
test_env.set('MUTTER_TEST_PLUGIN_PATH', '@0@'.format(default_plugin.full_path()))
|
||||
|
||||
test_client = executable('mutter-test-client',
|
||||
sources: ['test-client.c'],
|
||||
include_directories: tests_includepath,
|
||||
c_args: tests_c_args,
|
||||
dependencies: [
|
||||
gtk3_dep,
|
||||
gio_unix_dep,
|
||||
xext_dep,
|
||||
],
|
||||
install: false,
|
||||
)
|
||||
|
||||
test_runner = executable('mutter-test-runner',
|
||||
sources: [
|
||||
'test-utils.c',
|
||||
'test-utils.h',
|
||||
'test-runner.c',
|
||||
],
|
||||
include_directories: tests_includepath,
|
||||
c_args: tests_c_args,
|
||||
link_with: [libmutter],
|
||||
dependencies: [tests_deps],
|
||||
install: false,
|
||||
)
|
||||
|
||||
unit_tests = executable('mutter-test-unit-tests',
|
||||
sources: [
|
||||
'test-utils.c',
|
||||
'test-utils.h',
|
||||
'unit-tests.c',
|
||||
'boxes-tests.c',
|
||||
'boxes-tests.h',
|
||||
'meta-backend-test.c',
|
||||
'meta-backend-test.h',
|
||||
'meta-monitor-manager-test.c',
|
||||
'meta-monitor-manager-test.h',
|
||||
'monitor-config-migration-unit-tests.c',
|
||||
'monitor-config-migration-unit-tests.h',
|
||||
'monitor-store-unit-tests.c',
|
||||
'monitor-store-unit-tests.h',
|
||||
'monitor-test-utils.c',
|
||||
'monitor-test-utils.h',
|
||||
'monitor-unit-tests.c',
|
||||
'monitor-unit-tests.h',
|
||||
],
|
||||
include_directories: tests_includepath,
|
||||
c_args: tests_c_args,
|
||||
link_with: [libmutter],
|
||||
dependencies: [tests_deps],
|
||||
install: false,
|
||||
)
|
||||
|
||||
headless_start_test = executable('mutter-headless-start-test',
|
||||
sources: [
|
||||
'headless-start-test.c',
|
||||
'meta-backend-test.c',
|
||||
'meta-backend-test.h',
|
||||
'meta-monitor-manager-test.c',
|
||||
'meta-monitor-manager-test.h',
|
||||
'test-utils.c',
|
||||
'test-utils.h',
|
||||
],
|
||||
include_directories: tests_includepath,
|
||||
c_args: tests_c_args,
|
||||
link_with: [libmutter],
|
||||
dependencies: [tests_deps],
|
||||
install: false,
|
||||
)
|
||||
|
||||
stacking_tests = files([
|
||||
'stacking/basic-x11.metatest',
|
||||
'stacking/basic-wayland.metatest',
|
||||
'stacking/minimized.metatest',
|
||||
'stacking/mixed-windows.metatest',
|
||||
'stacking/set-parent.metatest',
|
||||
'stacking/override-redirect.metatest',
|
||||
])
|
||||
|
||||
test('mutter/stacking', test_runner,
|
||||
env: test_env,
|
||||
args: [
|
||||
stacking_tests,
|
||||
],
|
||||
is_parallel: false,
|
||||
timeout: 60,
|
||||
)
|
||||
|
||||
test('mutter/unit', unit_tests,
|
||||
env: test_env,
|
||||
is_parallel: false,
|
||||
timeout: 60,
|
||||
)
|
||||
|
||||
test('mutter/unit/headless-start', headless_start_test,
|
||||
env: test_env,
|
||||
is_parallel: false,
|
||||
timeout: 60,
|
||||
)
|
Loading…
Reference in New Issue
Block a user