2019-03-12 00:35:13 +00:00
|
|
|
mutter_includesubdir = join_paths(pkgname, 'meta')
|
|
|
|
mutter_includedir = join_paths(includedir, mutter_includesubdir)
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
|
|
|
|
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,
|
2019-01-21 11:13:48 +00:00
|
|
|
gsettings_desktop_schemas_dep,
|
|
|
|
gtk3_dep,
|
|
|
|
pango_dep,
|
|
|
|
]
|
|
|
|
|
|
|
|
mutter_pkg_private_deps = [
|
color-manager: Take over color device management from gsd-color
Previously, gsd-color handled adding color devices. It got information
about those via the GnomeRR API, which is part of libgnome-desktop.
libgnome-desktop itself got this information from the
org.gnome.Mutter.DisplayConfig.GetResources() D-Bus method, implemented
by mutter.
Now, mutter itself will add all the monitor color devices itself,
without having to go via gsd-color.
We sometimes need to delete colord devices synchronously, in certain
race conditions when we add and remove devices very quickly (e.g. in
tests). However, we cannot use libcolord's 'sync' API variants, as it
has a nested takes-all main loop as a way to invoke the sync call. This
effectively means we end up sometimes not return from this function in a
timely manner, causing wierd issues.
Instead, create our own sync helper, that uses a separate context that
we temporarly push as the thread-default one.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2141>
2021-10-27 20:47:06 +00:00
|
|
|
colord_dep,
|
2022-07-27 11:30:15 +00:00
|
|
|
lcms2_dep,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
gmodule_no_export_dep,
|
|
|
|
gnome_settings_daemon_dep,
|
|
|
|
json_glib_dep,
|
2019-01-08 14:59:57 +00:00
|
|
|
libcanberra_dep,
|
2019-01-21 11:13:48 +00:00
|
|
|
xkbcommon_dep,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
]
|
|
|
|
|
2022-03-03 10:51:00 +00:00
|
|
|
if have_gnome_desktop
|
|
|
|
mutter_pkg_private_deps += [
|
|
|
|
gnome_desktop_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
if have_gl
|
|
|
|
mutter_pkg_deps += [
|
|
|
|
gl_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_gles2
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
gles2_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_egl
|
|
|
|
mutter_pkg_deps += [
|
|
|
|
egl_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_libgudev
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
gudev_dep,
|
|
|
|
libudev_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_startup_notification
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
libstartup_notification_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_libwacom
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
libwacom_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_remote_desktop
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
libpipewire_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_introspection
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
gobject_introspection_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_x11
|
|
|
|
mutter_pkg_deps += [
|
2019-01-21 11:13:48 +00:00
|
|
|
xfixes_dep,
|
|
|
|
xi_dep,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
x11_dep,
|
2019-01-21 11:13:48 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
mutter_pkg_private_deps += [
|
|
|
|
xrandr_dep,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
xinerama_dep,
|
|
|
|
xext_dep,
|
|
|
|
ice_dep,
|
|
|
|
xcomposite_dep,
|
|
|
|
xcursor_dep,
|
|
|
|
xdamage_dep,
|
|
|
|
xkbfile_dep,
|
|
|
|
xkeyboard_config_dep,
|
|
|
|
xkbcommon_x11_dep,
|
|
|
|
xrender_dep,
|
|
|
|
x11_xcb_dep,
|
|
|
|
xcb_randr_dep,
|
|
|
|
xcb_res_dep,
|
2019-06-18 14:12:46 +00:00
|
|
|
xau_dep,
|
2019-03-22 12:53:00 +00:00
|
|
|
xtst_dep,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
if have_sm
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
sm_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_wayland
|
|
|
|
mutter_pkg_deps += [
|
|
|
|
wayland_server_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
2021-08-05 14:07:28 +00:00
|
|
|
if have_libsystemd
|
|
|
|
mutter_pkg_private_deps += [
|
|
|
|
libsystemd_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
if have_native_backend
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
libdrm_dep,
|
|
|
|
libinput_dep,
|
|
|
|
gudev_dep,
|
|
|
|
libgbm_dep,
|
|
|
|
logind_provider_dep,
|
2019-03-29 21:03:27 +00:00
|
|
|
libudev_dep,
|
|
|
|
xkbcommon_dep,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_wayland_eglstream
|
|
|
|
mutter_lib_deps += [
|
|
|
|
dl_dep,
|
|
|
|
]
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps += [
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
wayland_eglstream_protocols_dep,
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
mutter_deps = [
|
|
|
|
mutter_pkg_deps,
|
2019-01-21 11:13:48 +00:00
|
|
|
mutter_pkg_private_deps,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
mutter_lib_deps,
|
|
|
|
]
|
|
|
|
|
|
|
|
mutter_c_args = [
|
|
|
|
'-DCLUTTER_ENABLE_COMPOSITOR_API',
|
|
|
|
'-DCOGL_ENABLE_EXPERIMENTAL_API',
|
|
|
|
'-DCOGL_ENABLE_EXPERIMENTAL_2_0_API',
|
|
|
|
'-DCOGL_ENABLE_MUTTER_API',
|
|
|
|
'-DCLUTTER_DISABLE_DEPRECATION_WARNINGS',
|
|
|
|
'-DCOGL_DISABLE_DEPRECATION_WARNINGS',
|
|
|
|
'-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',
|
color-manager: Take over color device management from gsd-color
Previously, gsd-color handled adding color devices. It got information
about those via the GnomeRR API, which is part of libgnome-desktop.
libgnome-desktop itself got this information from the
org.gnome.Mutter.DisplayConfig.GetResources() D-Bus method, implemented
by mutter.
Now, mutter itself will add all the monitor color devices itself,
without having to go via gsd-color.
We sometimes need to delete colord devices synchronously, in certain
race conditions when we add and remove devices very quickly (e.g. in
tests). However, we cannot use libcolord's 'sync' API variants, as it
has a nested takes-all main loop as a way to invoke the sync call. This
effectively means we end up sometimes not return from this function in a
timely manner, causing wierd issues.
Instead, create our own sync helper, that uses a separate context that
we temporarly push as the thread-default one.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2141>
2021-10-27 20:47:06 +00:00
|
|
|
'backends/meta-color-device.c',
|
|
|
|
'backends/meta-color-device.h',
|
2021-10-25 08:50:02 +00:00
|
|
|
'backends/meta-color-manager.c',
|
|
|
|
'backends/meta-color-manager.h',
|
|
|
|
'backends/meta-color-manager-private.h',
|
2021-11-29 19:44:56 +00:00
|
|
|
'backends/meta-color-profile.c',
|
|
|
|
'backends/meta-color-profile.h',
|
|
|
|
'backends/meta-color-store.c',
|
|
|
|
'backends/meta-color-store.h',
|
2020-02-26 20:46:58 +00:00
|
|
|
'backends/meta-crtc-mode.c',
|
|
|
|
'backends/meta-crtc-mode.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2021-04-19 13:22:57 +00:00
|
|
|
'backends/meta-idle-manager.c',
|
|
|
|
'backends/meta-idle-manager.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/meta-idle-monitor-private.h',
|
2020-03-06 13:12:59 +00:00
|
|
|
'backends/meta-input-device.c',
|
2018-04-20 14:34:32 +00:00
|
|
|
'backends/meta-input-mapper.c',
|
|
|
|
'backends/meta-input-mapper-private.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/meta-input-settings.c',
|
|
|
|
'backends/meta-input-settings-private.h',
|
2021-03-10 02:18:13 +00:00
|
|
|
'backends/meta-input-settings-dummy.c',
|
|
|
|
'backends/meta-input-settings-dummy.h',
|
2019-11-14 02:59:25 +00:00
|
|
|
'backends/meta-keymap-utils.c',
|
|
|
|
'backends/meta-keymap-utils.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2019-01-05 13:18:02 +00:00
|
|
|
'backends/meta-monitor-transform.c',
|
2019-01-05 13:15:23 +00:00
|
|
|
'backends/meta-monitor-transform.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2018-12-05 07:48:41 +00:00
|
|
|
'backends/meta-screen-cast-window.c',
|
|
|
|
'backends/meta-screen-cast-window.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/meta-settings.c',
|
|
|
|
'backends/meta-settings-private.h',
|
|
|
|
'backends/meta-stage.c',
|
2021-05-10 11:27:39 +00:00
|
|
|
'backends/meta-stage-impl.c',
|
|
|
|
'backends/meta-stage-impl-private.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/meta-stage-private.h',
|
2021-05-10 19:56:19 +00:00
|
|
|
'backends/meta-stage-view.c',
|
|
|
|
'backends/meta-stage-view-private.h',
|
2020-07-16 11:52:39 +00:00
|
|
|
'backends/meta-viewport-info.c',
|
|
|
|
'backends/meta-viewport-info.h',
|
Introduce virtual monitors
Virtual monitors are monitors that isn't backed by any monitor like
hardware. It would typically be backed by e.g. a remote desktop service,
or a network display.
It is currently only supported by the native backend, and whether the
X11 backend will ever see virtual monitors is an open question. This
rest of this commit message describes how it works under the native
backend.
Each virutal monitor consists of virtualized mode setting components:
* A virtual CRTC mode (MetaCrtcModeVirtual)
* A virtual CRTC (MetaCrtcVirtual)
* A virtual connector (MetaOutputVirtual)
In difference to the corresponding mode setting objects that represents
KMS objects, the virtual ones isn't directly tied to a MetaGpu, other
than the CoglFramebuffer being part of the GPU context of the primary
GPU, which is the case for all monitors no matter what GPU they are
connected to. Part of the reason for this is that a MetaGpu in practice
represents a mode setting device, and its CRTCs and outputs, are all
backed by real mode setting objects, while a virtual monitor is only
backed by a framebuffer that is tied to the primary GPU. Maybe this will
be reevaluated in the future, but since a virtual monitor is not tied to
any GPU currently, so is the case for the virtual mode setting objects.
The native rendering backend, including the cursor renderer, is adapted
to handle the situation where a CRTC does not have a GPU associated with
it; this in practice means that it e.g. will not try to upload HW cursor
buffers when the cursor is only on a virtual monitor. The same applies
to the native renderer, which is made to avoid creating
MetaOnscreenNative for views that are backed by virtual CRTCs, as well
as to avoid trying to mode set on such views.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
2021-01-26 15:49:28 +00:00
|
|
|
'backends/meta-virtual-monitor.c',
|
|
|
|
'backends/meta-virtual-monitor.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2020-06-09 00:49:55 +00:00
|
|
|
'compositor/meta-background-content.c',
|
|
|
|
'compositor/meta-background-content-private.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'compositor/meta-background.c',
|
|
|
|
'compositor/meta-background-group.c',
|
|
|
|
'compositor/meta-background-image.c',
|
|
|
|
'compositor/meta-background-private.h',
|
2019-09-12 20:07:20 +00:00
|
|
|
'compositor/meta-compositor-server.c',
|
|
|
|
'compositor/meta-compositor-server.h',
|
2022-07-10 11:44:34 +00:00
|
|
|
'compositor/meta-compositor-view.c',
|
|
|
|
'compositor/meta-compositor-view.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2020-03-03 07:46:11 +00:00
|
|
|
'compositor/meta-later.c',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2022-06-10 23:13:57 +00:00
|
|
|
'compositor/meta-texture-mipmap.c',
|
|
|
|
'compositor/meta-texture-mipmap.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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/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/meta-accel-parse.c',
|
|
|
|
'core/meta-accel-parse.h',
|
2020-01-17 22:43:24 +00:00
|
|
|
'core/meta-anonymous-file.c',
|
|
|
|
'core/meta-anonymous-file.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'core/meta-border.c',
|
|
|
|
'core/meta-border.h',
|
2018-11-19 18:57:15 +00:00
|
|
|
'core/meta-clipboard-manager.c',
|
|
|
|
'core/meta-clipboard-manager.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'core/meta-close-dialog.c',
|
2021-03-03 10:31:24 +00:00
|
|
|
'core/meta-context-main.c',
|
|
|
|
'core/meta-context-main.h',
|
2021-03-02 08:31:19 +00:00
|
|
|
'core/meta-context-private.h',
|
|
|
|
'core/meta-context.c',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2018-12-13 18:02:19 +00:00
|
|
|
'core/meta-launch-context.c',
|
2020-07-15 20:38:00 +00:00
|
|
|
'core/meta-pad-action-mapper.c',
|
2021-03-02 09:21:20 +00:00
|
|
|
'core/meta-private-enums.h',
|
2018-11-19 15:45:20 +00:00
|
|
|
'core/meta-selection.c',
|
|
|
|
'core/meta-selection-source.c',
|
2018-11-19 18:50:21 +00:00
|
|
|
'core/meta-selection-source-memory.c',
|
2018-12-09 11:44:20 +00:00
|
|
|
'core/meta-sound-player.c',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'core/meta-workspace-manager.c',
|
|
|
|
'core/meta-workspace-manager-private.h',
|
|
|
|
'core/place.c',
|
|
|
|
'core/place.h',
|
2021-03-01 20:49:10 +00:00
|
|
|
'core/prefs-private.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
|
|
|
]
|
|
|
|
|
2022-03-25 10:50:52 +00:00
|
|
|
if have_x11
|
|
|
|
mutter_sources += [
|
|
|
|
'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-cursor-tracker-x11.c',
|
|
|
|
'backends/x11/meta-cursor-tracker-x11.h',
|
|
|
|
'backends/x11/meta-event-x11.c',
|
|
|
|
'backends/x11/meta-event-x11.h',
|
|
|
|
'backends/x11/meta-gpu-xrandr.c',
|
|
|
|
'backends/x11/meta-gpu-xrandr.h',
|
|
|
|
'backends/x11/meta-input-device-x11.c',
|
|
|
|
'backends/x11/meta-input-device-x11.h',
|
|
|
|
'backends/x11/meta-input-device-tool-x11.c',
|
|
|
|
'backends/x11/meta-input-device-tool-x11.h',
|
|
|
|
'backends/x11/meta-input-settings-x11.c',
|
|
|
|
'backends/x11/meta-input-settings-x11.h',
|
|
|
|
'backends/x11/meta-seat-x11.c',
|
|
|
|
'backends/x11/meta-seat-x11.h',
|
|
|
|
'backends/x11/meta-keymap-x11.c',
|
|
|
|
'backends/x11/meta-keymap-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.c',
|
|
|
|
'backends/x11/meta-stage-x11.h',
|
|
|
|
'backends/x11/meta-virtual-input-device-x11.c',
|
|
|
|
'backends/x11/meta-virtual-input-device-x11.h',
|
|
|
|
'backends/x11/meta-xkb-a11y-x11.c',
|
|
|
|
'backends/x11/meta-xkb-a11y-x11.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-stage-x11-nested.c',
|
|
|
|
'backends/x11/nested/meta-stage-x11-nested.h',
|
|
|
|
'backends/x11/nested/meta-renderer-x11-nested.c',
|
|
|
|
'backends/x11/nested/meta-renderer-x11-nested.h',
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_x11_client
|
|
|
|
mutter_sources += [
|
|
|
|
'compositor/meta-compositor-x11.c',
|
|
|
|
'compositor/meta-compositor-x11.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-window-actor-x11.c',
|
|
|
|
'compositor/meta-window-actor-x11.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-selection-source-x11.c',
|
|
|
|
'x11/meta-selection-source-x11-private.h',
|
|
|
|
'x11/meta-startup-notification-x11.c',
|
|
|
|
'x11/meta-startup-notification-x11.h',
|
|
|
|
'x11/meta-x11-display.c',
|
|
|
|
'x11/meta-x11-display-private.h',
|
|
|
|
'x11/meta-x11-errors.c',
|
|
|
|
'x11/meta-x11-selection.c',
|
|
|
|
'x11/meta-x11-selection-private.h',
|
|
|
|
'x11/meta-x11-selection-input-stream.c',
|
|
|
|
'x11/meta-x11-selection-input-stream-private.h',
|
|
|
|
'x11/meta-x11-selection-output-stream.c',
|
|
|
|
'x11/meta-x11-selection-output-stream-private.h',
|
|
|
|
'x11/meta-x11-stack.c',
|
|
|
|
'x11/meta-x11-stack-private.h',
|
|
|
|
'x11/meta-x11-window-control.c',
|
|
|
|
'x11/meta-x11-window-control.h',
|
|
|
|
'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',
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
2021-05-03 17:23:52 +00:00
|
|
|
if have_egl_device
|
|
|
|
mutter_sources += [
|
|
|
|
'backends/native/meta-render-device-egl-stream.c',
|
|
|
|
'backends/native/meta-render-device-egl-stream.h',
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
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',
|
2020-03-04 20:42:52 +00:00
|
|
|
'backends/meta-screen-cast-area-stream.c',
|
|
|
|
'backends/meta-screen-cast-area-stream.h',
|
|
|
|
'backends/meta-screen-cast-area-stream-src.c',
|
|
|
|
'backends/meta-screen-cast-area-stream-src.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2021-02-01 09:57:35 +00:00
|
|
|
'backends/meta-screen-cast-virtual-stream-src.c',
|
|
|
|
'backends/meta-screen-cast-virtual-stream-src.h',
|
|
|
|
'backends/meta-screen-cast-virtual-stream.c',
|
|
|
|
'backends/meta-screen-cast-virtual-stream.h',
|
2018-10-09 13:35:14 +00:00
|
|
|
'backends/meta-screen-cast-window-stream-src.c',
|
|
|
|
'backends/meta-screen-cast-window-stream-src.h',
|
|
|
|
'backends/meta-screen-cast-window-stream.c',
|
|
|
|
'backends/meta-screen-cast-window-stream.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2020-11-04 09:23:52 +00:00
|
|
|
'core/meta-selection-source-remote.c',
|
|
|
|
'core/meta-selection-source-remote.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_wayland
|
|
|
|
mutter_sources += [
|
|
|
|
'compositor/meta-surface-actor-wayland.c',
|
|
|
|
'compositor/meta-surface-actor-wayland.h',
|
2019-09-28 08:26:21 +00:00
|
|
|
'compositor/meta-window-actor-wayland.c',
|
|
|
|
'compositor/meta-window-actor-wayland.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2018-11-19 16:34:18 +00:00
|
|
|
'wayland/meta-selection-source-wayland.c',
|
|
|
|
'wayland/meta-selection-source-wayland-private.h',
|
2020-10-09 14:23:32 +00:00
|
|
|
'wayland/meta-wayland-activation.c',
|
|
|
|
'wayland/meta-wayland-activation.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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: Add API to launch trusted clients
Allowing code from inside mutter to create a child process and
delegate on it some of its tasks is something very useful. This can
be done easily with the g_subprocess and g_subprocess_launcher classes
already available in GLib and GObject.
Unfortunately, although the child process can be a graphical program,
currently it is not possible for the inner code to identify the
windows created by the child in a secure manner (this is: being able
to ensure that a malicious program won't be able to trick the inner
code into thinking it is a child process launched by it).
Under X11 this is not a problem because any program has full control
over their windows, but under Wayland it is a different story: a
program can't neither force their window to be kept at the top (like a
docker program does) or at the bottom (like a program for desktop icons
does), nor hide it from the list of windows. This means that it is not
possible for a "classic", non-priviledged program, to fulfill these
tasks, and it can be done only from code inside mutter (like a
gnome-shell extension).
This is a non desirable situation, because an extension runs in the
same main loop than the whole desktop itself, which means that a
complex extension can need to do too much work inside the main loop,
and freeze the whole desktop for too much time. Also, it is important
to note that javascript doesn't have access to fork(), or threads,
which means that, at most, all the parallel computing that can do is
those available in the _async calls in GLib/GObject.
Also, having to create an extension for any priviledged graphical
element is an stopper for a lot of programmers who already know
GTK+ but doesn't know Clutter.
This patch wants to offer a solution to this problem, by offering a
new class that allows to launch a trusted child process from inside
mutter, and make it to use an specific UNIX socket to communicate
with the compositor. It also allows to check whether an specific
MetaWindow was created by one of this trusted child processes or not.
This allows to create extensions that launch a child process, and
when that process creates a window, the extension can confirm in a
secure way that the window really belongs to that process
launched by it, so it can give to that window "superpowers" like
being kept at the bottom of the desktop, not being listed in the
list of windows or shown in the Activities panel... Also, in future
versions, it could easily implement protocol extensions that only
could be used by these trusted child processes.
Several examples of the usefulness of this are that, with it, it
is possible to write programs that implements:
- desktop icons
- a dock
- a top or bottom bar
...
all in a secure manner, avoiding insecure programs to do the same.
In fact, even if the same code is launched manually, it won't have
those privileges, only the specific process launched from inside
mutter.
Since this is only needed under Wayland, it won't work under X11.
Fixes https://gitlab.gnome.org/GNOME/mutter/issues/741
2020-08-04 08:42:29 +00:00
|
|
|
'wayland/meta-wayland-client.c',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'wayland/meta-wayland-cursor-surface.c',
|
|
|
|
'wayland/meta-wayland-cursor-surface.h',
|
|
|
|
'wayland/meta-wayland-data-device.c',
|
|
|
|
'wayland/meta-wayland-data-device.h',
|
2020-05-13 16:07:27 +00:00
|
|
|
'wayland/meta-wayland-data-device-primary.c',
|
|
|
|
'wayland/meta-wayland-data-device-primary.h',
|
2020-04-09 14:22:21 +00:00
|
|
|
'wayland/meta-wayland-data-offer.c',
|
|
|
|
'wayland/meta-wayland-data-offer.h',
|
2020-05-13 16:07:27 +00:00
|
|
|
'wayland/meta-wayland-data-offer-primary.c',
|
|
|
|
'wayland/meta-wayland-data-offer-primary.h',
|
2020-04-09 12:05:51 +00:00
|
|
|
'wayland/meta-wayland-data-source.c',
|
|
|
|
'wayland/meta-wayland-data-source.h',
|
2020-05-13 16:07:27 +00:00
|
|
|
'wayland/meta-wayland-data-source-primary.c',
|
|
|
|
'wayland/meta-wayland-data-source-primary.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'wayland/meta-wayland-dma-buf.c',
|
|
|
|
'wayland/meta-wayland-dma-buf.h',
|
2019-01-20 16:34:50 +00:00
|
|
|
'wayland/meta-wayland-dnd-surface.c',
|
|
|
|
'wayland/meta-wayland-dnd-surface.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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-outputs.c',
|
|
|
|
'wayland/meta-wayland-outputs.h',
|
|
|
|
'wayland/meta-wayland-pointer.c',
|
|
|
|
'wayland/meta-wayland-pointer-constraints.c',
|
|
|
|
'wayland/meta-wayland-pointer-constraints.h',
|
2021-04-18 18:24:52 +00:00
|
|
|
'wayland/meta-wayland-pointer-gesture-hold.c',
|
|
|
|
'wayland/meta-wayland-pointer-gesture-hold.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2020-10-07 09:02:41 +00:00
|
|
|
'wayland/meta-wayland-presentation-time.c',
|
|
|
|
'wayland/meta-wayland-presentation-time-private.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2022-01-19 10:49:32 +00:00
|
|
|
'wayland/meta-wayland-single-pixel-buffer.c',
|
|
|
|
'wayland/meta-wayland-single-pixel-buffer.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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-touch.c',
|
|
|
|
'wayland/meta-wayland-touch.h',
|
|
|
|
'wayland/meta-wayland-types.h',
|
|
|
|
'wayland/meta-wayland-versions.h',
|
2018-11-24 19:25:38 +00:00
|
|
|
'wayland/meta-wayland-viewporter.c',
|
|
|
|
'wayland/meta-wayland-viewporter.h',
|
2019-07-05 16:10:14 +00:00
|
|
|
'wayland/meta-wayland-window-configuration.c',
|
|
|
|
'wayland/meta-wayland-window-configuration.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
|
|
|
]
|
2022-03-25 10:50:52 +00:00
|
|
|
|
|
|
|
if have_xwayland
|
|
|
|
mutter_sources += [
|
|
|
|
'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-dnd.c',
|
|
|
|
'wayland/meta-xwayland-dnd-private.h',
|
|
|
|
'wayland/meta-xwayland-surface.c',
|
|
|
|
'wayland/meta-xwayland-surface.h',
|
|
|
|
]
|
|
|
|
endif
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
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',
|
2019-01-10 17:07:12 +00:00
|
|
|
'backends/native/meta-backend-native-types.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'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',
|
2020-08-29 00:58:18 +00:00
|
|
|
'backends/native/meta-cogl-utils.c',
|
|
|
|
'backends/native/meta-cogl-utils.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-crtc-kms.c',
|
|
|
|
'backends/native/meta-crtc-kms.h',
|
2021-01-14 10:15:53 +00:00
|
|
|
'backends/native/meta-crtc-native.c',
|
|
|
|
'backends/native/meta-crtc-native.h',
|
2020-02-27 22:19:38 +00:00
|
|
|
'backends/native/meta-crtc-mode-kms.c',
|
|
|
|
'backends/native/meta-crtc-mode-kms.h',
|
Introduce virtual monitors
Virtual monitors are monitors that isn't backed by any monitor like
hardware. It would typically be backed by e.g. a remote desktop service,
or a network display.
It is currently only supported by the native backend, and whether the
X11 backend will ever see virtual monitors is an open question. This
rest of this commit message describes how it works under the native
backend.
Each virutal monitor consists of virtualized mode setting components:
* A virtual CRTC mode (MetaCrtcModeVirtual)
* A virtual CRTC (MetaCrtcVirtual)
* A virtual connector (MetaOutputVirtual)
In difference to the corresponding mode setting objects that represents
KMS objects, the virtual ones isn't directly tied to a MetaGpu, other
than the CoglFramebuffer being part of the GPU context of the primary
GPU, which is the case for all monitors no matter what GPU they are
connected to. Part of the reason for this is that a MetaGpu in practice
represents a mode setting device, and its CRTCs and outputs, are all
backed by real mode setting objects, while a virtual monitor is only
backed by a framebuffer that is tied to the primary GPU. Maybe this will
be reevaluated in the future, but since a virtual monitor is not tied to
any GPU currently, so is the case for the virtual mode setting objects.
The native rendering backend, including the cursor renderer, is adapted
to handle the situation where a CRTC does not have a GPU associated with
it; this in practice means that it e.g. will not try to upload HW cursor
buffers when the cursor is only on a virtual monitor. The same applies
to the native renderer, which is made to avoid creating
MetaOnscreenNative for views that are backed by virtual CRTCs, as well
as to avoid trying to mode set on such views.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
2021-01-26 15:49:28 +00:00
|
|
|
'backends/native/meta-crtc-mode-virtual.c',
|
|
|
|
'backends/native/meta-crtc-mode-virtual.h',
|
|
|
|
'backends/native/meta-crtc-virtual.c',
|
|
|
|
'backends/native/meta-crtc-virtual.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-cursor-renderer-native.c',
|
|
|
|
'backends/native/meta-cursor-renderer-native.h',
|
2021-03-31 16:28:19 +00:00
|
|
|
'backends/native/meta-device-pool-private.h',
|
|
|
|
'backends/native/meta-device-pool.c',
|
|
|
|
'backends/native/meta-device-pool.h',
|
2019-05-20 20:08:35 +00:00
|
|
|
'backends/native/meta-drm-buffer-dumb.c',
|
|
|
|
'backends/native/meta-drm-buffer-dumb.h',
|
|
|
|
'backends/native/meta-drm-buffer-gbm.c',
|
|
|
|
'backends/native/meta-drm-buffer-gbm.h',
|
2019-05-24 14:07:14 +00:00
|
|
|
'backends/native/meta-drm-buffer-import.c',
|
|
|
|
'backends/native/meta-drm-buffer-import.h',
|
2020-09-29 07:40:53 +00:00
|
|
|
'backends/native/meta-drm-buffer-private.h',
|
2019-05-20 19:20:17 +00:00
|
|
|
'backends/native/meta-drm-buffer.c',
|
|
|
|
'backends/native/meta-drm-buffer.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-gpu-kms.c',
|
|
|
|
'backends/native/meta-gpu-kms.h',
|
2019-03-29 21:03:27 +00:00
|
|
|
'backends/native/meta-input-device-native.c',
|
|
|
|
'backends/native/meta-input-device-native.h',
|
|
|
|
'backends/native/meta-input-device-tool-native.c',
|
|
|
|
'backends/native/meta-input-device-tool-native.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-input-settings-native.c',
|
|
|
|
'backends/native/meta-input-settings-native.h',
|
2019-03-29 21:03:27 +00:00
|
|
|
'backends/native/meta-keymap-native.c',
|
|
|
|
'backends/native/meta-keymap-native.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-launcher.c',
|
|
|
|
'backends/native/meta-launcher.h',
|
2020-12-17 21:12:41 +00:00
|
|
|
'backends/native/meta-monitor-manager-native.c',
|
|
|
|
'backends/native/meta-monitor-manager-native.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-output-kms.c',
|
|
|
|
'backends/native/meta-output-kms.h',
|
2020-12-17 21:31:28 +00:00
|
|
|
'backends/native/meta-output-native.c',
|
|
|
|
'backends/native/meta-output-native.h',
|
Introduce virtual monitors
Virtual monitors are monitors that isn't backed by any monitor like
hardware. It would typically be backed by e.g. a remote desktop service,
or a network display.
It is currently only supported by the native backend, and whether the
X11 backend will ever see virtual monitors is an open question. This
rest of this commit message describes how it works under the native
backend.
Each virutal monitor consists of virtualized mode setting components:
* A virtual CRTC mode (MetaCrtcModeVirtual)
* A virtual CRTC (MetaCrtcVirtual)
* A virtual connector (MetaOutputVirtual)
In difference to the corresponding mode setting objects that represents
KMS objects, the virtual ones isn't directly tied to a MetaGpu, other
than the CoglFramebuffer being part of the GPU context of the primary
GPU, which is the case for all monitors no matter what GPU they are
connected to. Part of the reason for this is that a MetaGpu in practice
represents a mode setting device, and its CRTCs and outputs, are all
backed by real mode setting objects, while a virtual monitor is only
backed by a framebuffer that is tied to the primary GPU. Maybe this will
be reevaluated in the future, but since a virtual monitor is not tied to
any GPU currently, so is the case for the virtual mode setting objects.
The native rendering backend, including the cursor renderer, is adapted
to handle the situation where a CRTC does not have a GPU associated with
it; this in practice means that it e.g. will not try to upload HW cursor
buffers when the cursor is only on a virtual monitor. The same applies
to the native renderer, which is made to avoid creating
MetaOnscreenNative for views that are backed by virtual CRTCs, as well
as to avoid trying to mode set on such views.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
2021-01-26 15:49:28 +00:00
|
|
|
'backends/native/meta-output-virtual.c',
|
|
|
|
'backends/native/meta-output-virtual.h',
|
2019-03-08 15:23:15 +00:00
|
|
|
'backends/native/meta-kms-connector-private.h',
|
|
|
|
'backends/native/meta-kms-connector.c',
|
|
|
|
'backends/native/meta-kms-connector.h',
|
2019-01-29 17:33:00 +00:00
|
|
|
'backends/native/meta-kms-crtc-private.h',
|
|
|
|
'backends/native/meta-kms-crtc.c',
|
|
|
|
'backends/native/meta-kms-crtc.h',
|
2019-03-08 18:19:18 +00:00
|
|
|
'backends/native/meta-kms-device-private.h',
|
backends/native: Add basic KMS abstraction building blocks
The intention with KMS abstraction is to hide away accessing the drm
functions behind an API that allows us to have different kind of KMS
implementations, including legacy non-atomic and atomic. The intention
is also that the code interacting with the drm device should be able to
be run in a different thread than the main thread. This means that we
need to make sure that all drm*() API usage must only occur from within
tasks that eventually can be run in the dedicated thread.
The idea here is that MetaKms provides a outward facing API other places
of mutter can use (e.g. MetaGpuKms and friends), while MetaKmsImpl is
an internal implementation that only gets interacted with via "tasks"
posted via the MetaKms object. These tasks will in the future
potentially be run on the dedicated KMS thread. Initially, we don't
create any new threads.
Likewise, MetaKmsDevice is a outward facing representation of a KMS
device, while MetaKmsImplDevice is the corresponding implementation,
which only runs from within the MetaKmsImpl tasks.
This commit only moves opening and closing the device to this new API,
while leaking the fd outside of the impl enclosure, effectively making
the isolation for drm*() calls pointless. This, however, is necessary to
allow gradual porting of drm interaction, and eventually the file
descriptor in MetaGpuKms will be removed. For now, it's harmless, since
everything still run in the main thread.
https://gitlab.gnome.org/GNOME/mutter/issues/548
https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
2019-01-29 09:24:44 +00:00
|
|
|
'backends/native/meta-kms-device.c',
|
|
|
|
'backends/native/meta-kms-device.h',
|
2020-10-09 23:25:06 +00:00
|
|
|
'backends/native/meta-kms-impl-device-atomic.c',
|
|
|
|
'backends/native/meta-kms-impl-device-atomic.h',
|
kms: Add way to run without mode setting
Currently our only entry point for DRM devices is MetaKms*, but in order
to run without being DRM master, we cannot use /dev/dri/card*, nor can
we be either of the existing MetaKmsImplDevice implementation (legacy
KMS, and atomic KMS), as they both depend on being DRM master.
Thus to handle running without being DRM master (i.e. headless), add a
"dummy" MetaKmsImplDevice implementation, that doesn't do any mode
setting at all, and that switches to operate on the render node, instead
of the card node itself.
This means we still use the same GBM code paths as the regular native
backend paths, except we never make use of any CRTC backed onscreen
framebuffers.
Eventually, this "dummy" MetaKmsImplDevice will be replaced separating
"KMS" device objects from "render" device objects, but that will require
more significant changes. It will, however, be necessary for e.g. going
from being headless, only having access to a render node, to turning
into a real session, with a seat, being DRM master, and having access to
a card node.
This is currently not hooked up, but will be in a later commit.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
2021-01-19 13:54:45 +00:00
|
|
|
'backends/native/meta-kms-impl-device-dummy.c',
|
|
|
|
'backends/native/meta-kms-impl-device-dummy.h',
|
2020-07-17 07:38:11 +00:00
|
|
|
'backends/native/meta-kms-impl-device-simple.c',
|
|
|
|
'backends/native/meta-kms-impl-device-simple.h',
|
backends/native: Add basic KMS abstraction building blocks
The intention with KMS abstraction is to hide away accessing the drm
functions behind an API that allows us to have different kind of KMS
implementations, including legacy non-atomic and atomic. The intention
is also that the code interacting with the drm device should be able to
be run in a different thread than the main thread. This means that we
need to make sure that all drm*() API usage must only occur from within
tasks that eventually can be run in the dedicated thread.
The idea here is that MetaKms provides a outward facing API other places
of mutter can use (e.g. MetaGpuKms and friends), while MetaKmsImpl is
an internal implementation that only gets interacted with via "tasks"
posted via the MetaKms object. These tasks will in the future
potentially be run on the dedicated KMS thread. Initially, we don't
create any new threads.
Likewise, MetaKmsDevice is a outward facing representation of a KMS
device, while MetaKmsImplDevice is the corresponding implementation,
which only runs from within the MetaKmsImpl tasks.
This commit only moves opening and closing the device to this new API,
while leaking the fd outside of the impl enclosure, effectively making
the isolation for drm*() calls pointless. This, however, is necessary to
allow gradual porting of drm interaction, and eventually the file
descriptor in MetaGpuKms will be removed. For now, it's harmless, since
everything still run in the main thread.
https://gitlab.gnome.org/GNOME/mutter/issues/548
https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
2019-01-29 09:24:44 +00:00
|
|
|
'backends/native/meta-kms-impl-device.c',
|
|
|
|
'backends/native/meta-kms-impl-device.h',
|
|
|
|
'backends/native/meta-kms-impl.c',
|
|
|
|
'backends/native/meta-kms-impl.h',
|
2020-06-04 15:12:34 +00:00
|
|
|
'backends/native/meta-kms-mode.c',
|
|
|
|
'backends/native/meta-kms-mode.h',
|
backend/native: Add and use transactional KMS API
This commit introduces, and makes use of, a transactional API used for
setting up KMS state, later to be applied, potentially atomically. From
an API point of view, so is always the case, but in the current
implementation, it still uses legacy drmMode* API to apply the state
non-atomically.
The API consists of various buliding blocks:
* MetaKmsUpdate - a set of configuration changes, the higher level
handle for handing over configuration to the impl backend. It's used to
set mode, assign framebuffers to planes, queue page flips and set
connector properties.
* MetaKmsPlaneAssignment - the assignment of a framebuffer to a plane.
Currently used to map a framebuffer to the primary plane of a CRTC. In
the legacy KMS implementation, the plane assignment is used to derive
the framebuffer used for mode setting and page flipping.
This also means various high level changes:
State, excluding configuring the cursor plane and creating/destroying
DRM framebuffer handles, are applied in the end of a clutter frame, in
one go. From an API point of view, this is done atomically, but as
mentioned, only the non-atomic implementation exists so far.
From MetaRendererNative's point of view, a page flip now initially
always succeeds; the handling of EBUSY errors are done asynchronously in
the MetaKmsImpl backend (still by retrying at refresh rate, but
postponing flip callbacks instead of manipulating the frame clock).
Handling of falling back to mode setting instead of page flipping is
notified after the fact by a more precise page flip feedback API.
EGLStream based page flipping relies on the impl backend not being
atomic, as the page flipping is done in the EGLStream backend (e.g.
nvidia driver). It uses a 'custom' page flip queueing method, keeping
the EGLStream logic inside meta-renderer-native.c.
Page flip handling is moved to meta-kms-impl-device.c from
meta-gpu-kms.c. It goes via an extra idle callback before reaching
meta-renderer-native.c to make sure callbacks are invoked outside of the
impl context.
While dummy power save page flipping is kept in meta-renderer-native.c, the
EBUSY handling is moved to meta-kms-impl-simple.c. Instead of freezing the
frame clock, actual page flip callbacks are postponed until all EBUSY retries
have either succeeded or failed due to some other error than EBUSY. This
effectively inhibits new frames to be drawn, meaning we won't stall waiting on
the file descriptor for pending page flips.
https://gitlab.gnome.org/GNOME/mutter/issues/548
https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
2019-04-04 20:36:41 +00:00
|
|
|
'backends/native/meta-kms-page-flip.c',
|
|
|
|
'backends/native/meta-kms-page-flip-private.h',
|
kms: Add plane representation
A plane is one of three possible: primary, overlay and cursor. Each
plane can have various properties, such as possible rotations, formats
etc. Each plane can also be used with a set of CRTCs.
A primary plane is the "backdrop" of a CRTC, i.e. the primary output for
the composited frame that covers the whole CRTC. In general, mutter
composites to a stage view frame onto a framebuffer that is then put on
the primary plane.
An overlay plane is a rectangular area that can be displayed on top of
the primary plane. Eventually it will be used to place non-fullscreen
surfaces, potentially avoiding stage redraws.
A cursor plane is a plane placed on top of all the other planes, usually
used to put the mouse cursor sprite.
Initially, we only fetch the rotation properties, and we so far
blacklist all rotations except ones that ends up with the same
dimensions as with no rotations. This is because non-180° rotations
doesn't work yet due to incorrect buffer modifiers. To make it possible
to use non-180° rotations, changes necessary include among other things
finding compatible modifiers using atomic modesetting. Until then,
simply blacklist the ones we know doesn't work.
https://gitlab.gnome.org/GNOME/mutter/issues/548
https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
2019-01-31 17:48:19 +00:00
|
|
|
'backends/native/meta-kms-plane.c',
|
2019-10-31 09:38:19 +00:00
|
|
|
'backends/native/meta-kms-plane-private.h',
|
kms: Add plane representation
A plane is one of three possible: primary, overlay and cursor. Each
plane can have various properties, such as possible rotations, formats
etc. Each plane can also be used with a set of CRTCs.
A primary plane is the "backdrop" of a CRTC, i.e. the primary output for
the composited frame that covers the whole CRTC. In general, mutter
composites to a stage view frame onto a framebuffer that is then put on
the primary plane.
An overlay plane is a rectangular area that can be displayed on top of
the primary plane. Eventually it will be used to place non-fullscreen
surfaces, potentially avoiding stage redraws.
A cursor plane is a plane placed on top of all the other planes, usually
used to put the mouse cursor sprite.
Initially, we only fetch the rotation properties, and we so far
blacklist all rotations except ones that ends up with the same
dimensions as with no rotations. This is because non-180° rotations
doesn't work yet due to incorrect buffer modifiers. To make it possible
to use non-180° rotations, changes necessary include among other things
finding compatible modifiers using atomic modesetting. Until then,
simply blacklist the ones we know doesn't work.
https://gitlab.gnome.org/GNOME/mutter/issues/548
https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
2019-01-31 17:48:19 +00:00
|
|
|
'backends/native/meta-kms-plane.h',
|
backends/native: Add basic KMS abstraction building blocks
The intention with KMS abstraction is to hide away accessing the drm
functions behind an API that allows us to have different kind of KMS
implementations, including legacy non-atomic and atomic. The intention
is also that the code interacting with the drm device should be able to
be run in a different thread than the main thread. This means that we
need to make sure that all drm*() API usage must only occur from within
tasks that eventually can be run in the dedicated thread.
The idea here is that MetaKms provides a outward facing API other places
of mutter can use (e.g. MetaGpuKms and friends), while MetaKmsImpl is
an internal implementation that only gets interacted with via "tasks"
posted via the MetaKms object. These tasks will in the future
potentially be run on the dedicated KMS thread. Initially, we don't
create any new threads.
Likewise, MetaKmsDevice is a outward facing representation of a KMS
device, while MetaKmsImplDevice is the corresponding implementation,
which only runs from within the MetaKmsImpl tasks.
This commit only moves opening and closing the device to this new API,
while leaking the fd outside of the impl enclosure, effectively making
the isolation for drm*() calls pointless. This, however, is necessary to
allow gradual porting of drm interaction, and eventually the file
descriptor in MetaGpuKms will be removed. For now, it's harmless, since
everything still run in the main thread.
https://gitlab.gnome.org/GNOME/mutter/issues/548
https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
2019-01-29 09:24:44 +00:00
|
|
|
'backends/native/meta-kms-private.h',
|
|
|
|
'backends/native/meta-kms-types.h',
|
backend/native: Add and use transactional KMS API
This commit introduces, and makes use of, a transactional API used for
setting up KMS state, later to be applied, potentially atomically. From
an API point of view, so is always the case, but in the current
implementation, it still uses legacy drmMode* API to apply the state
non-atomically.
The API consists of various buliding blocks:
* MetaKmsUpdate - a set of configuration changes, the higher level
handle for handing over configuration to the impl backend. It's used to
set mode, assign framebuffers to planes, queue page flips and set
connector properties.
* MetaKmsPlaneAssignment - the assignment of a framebuffer to a plane.
Currently used to map a framebuffer to the primary plane of a CRTC. In
the legacy KMS implementation, the plane assignment is used to derive
the framebuffer used for mode setting and page flipping.
This also means various high level changes:
State, excluding configuring the cursor plane and creating/destroying
DRM framebuffer handles, are applied in the end of a clutter frame, in
one go. From an API point of view, this is done atomically, but as
mentioned, only the non-atomic implementation exists so far.
From MetaRendererNative's point of view, a page flip now initially
always succeeds; the handling of EBUSY errors are done asynchronously in
the MetaKmsImpl backend (still by retrying at refresh rate, but
postponing flip callbacks instead of manipulating the frame clock).
Handling of falling back to mode setting instead of page flipping is
notified after the fact by a more precise page flip feedback API.
EGLStream based page flipping relies on the impl backend not being
atomic, as the page flipping is done in the EGLStream backend (e.g.
nvidia driver). It uses a 'custom' page flip queueing method, keeping
the EGLStream logic inside meta-renderer-native.c.
Page flip handling is moved to meta-kms-impl-device.c from
meta-gpu-kms.c. It goes via an extra idle callback before reaching
meta-renderer-native.c to make sure callbacks are invoked outside of the
impl context.
While dummy power save page flipping is kept in meta-renderer-native.c, the
EBUSY handling is moved to meta-kms-impl-simple.c. Instead of freezing the
frame clock, actual page flip callbacks are postponed until all EBUSY retries
have either succeeded or failed due to some other error than EBUSY. This
effectively inhibits new frames to be drawn, meaning we won't stall waiting on
the file descriptor for pending page flips.
https://gitlab.gnome.org/GNOME/mutter/issues/548
https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
2019-04-04 20:36:41 +00:00
|
|
|
'backends/native/meta-kms-update-private.h',
|
|
|
|
'backends/native/meta-kms-update.c',
|
|
|
|
'backends/native/meta-kms-update.h',
|
2019-03-11 10:13:01 +00:00
|
|
|
'backends/native/meta-kms-utils.c',
|
|
|
|
'backends/native/meta-kms-utils.h',
|
backends/native: Add basic KMS abstraction building blocks
The intention with KMS abstraction is to hide away accessing the drm
functions behind an API that allows us to have different kind of KMS
implementations, including legacy non-atomic and atomic. The intention
is also that the code interacting with the drm device should be able to
be run in a different thread than the main thread. This means that we
need to make sure that all drm*() API usage must only occur from within
tasks that eventually can be run in the dedicated thread.
The idea here is that MetaKms provides a outward facing API other places
of mutter can use (e.g. MetaGpuKms and friends), while MetaKmsImpl is
an internal implementation that only gets interacted with via "tasks"
posted via the MetaKms object. These tasks will in the future
potentially be run on the dedicated KMS thread. Initially, we don't
create any new threads.
Likewise, MetaKmsDevice is a outward facing representation of a KMS
device, while MetaKmsImplDevice is the corresponding implementation,
which only runs from within the MetaKmsImpl tasks.
This commit only moves opening and closing the device to this new API,
while leaking the fd outside of the impl enclosure, effectively making
the isolation for drm*() calls pointless. This, however, is necessary to
allow gradual porting of drm interaction, and eventually the file
descriptor in MetaGpuKms will be removed. For now, it's harmless, since
everything still run in the main thread.
https://gitlab.gnome.org/GNOME/mutter/issues/548
https://gitlab.gnome.org/GNOME/mutter/merge_requests/525
2019-01-29 09:24:44 +00:00
|
|
|
'backends/native/meta-kms.c',
|
|
|
|
'backends/native/meta-kms.h',
|
2020-10-17 21:08:28 +00:00
|
|
|
'backends/native/meta-onscreen-native.c',
|
|
|
|
'backends/native/meta-onscreen-native.h',
|
2020-07-08 16:17:13 +00:00
|
|
|
'backends/native/meta-pointer-constraint-native.c',
|
|
|
|
'backends/native/meta-pointer-constraint-native.h',
|
2021-05-03 17:23:52 +00:00
|
|
|
'backends/native/meta-render-device-gbm.c',
|
|
|
|
'backends/native/meta-render-device-gbm.h',
|
|
|
|
'backends/native/meta-render-device-private.h',
|
|
|
|
'backends/native/meta-render-device-surfaceless.c',
|
|
|
|
'backends/native/meta-render-device-surfaceless.h',
|
|
|
|
'backends/native/meta-render-device.c',
|
|
|
|
'backends/native/meta-render-device.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-renderer-native-gles3.c',
|
|
|
|
'backends/native/meta-renderer-native-gles3.h',
|
2020-10-17 21:08:28 +00:00
|
|
|
'backends/native/meta-renderer-native-private.h',
|
|
|
|
'backends/native/meta-renderer-native.c',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-renderer-native.h',
|
2020-08-07 13:13:51 +00:00
|
|
|
'backends/native/meta-seat-impl.c',
|
|
|
|
'backends/native/meta-seat-impl.h',
|
2019-03-29 21:03:27 +00:00
|
|
|
'backends/native/meta-seat-native.c',
|
|
|
|
'backends/native/meta-seat-native.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
'backends/native/meta-stage-native.c',
|
|
|
|
'backends/native/meta-stage-native.h',
|
2019-01-10 10:30:02 +00:00
|
|
|
'backends/native/meta-udev.c',
|
|
|
|
'backends/native/meta-udev.h',
|
2019-03-29 21:03:27 +00:00
|
|
|
'backends/native/meta-virtual-input-device-native.c',
|
|
|
|
'backends/native/meta-virtual-input-device-native.h',
|
Introduce virtual monitors
Virtual monitors are monitors that isn't backed by any monitor like
hardware. It would typically be backed by e.g. a remote desktop service,
or a network display.
It is currently only supported by the native backend, and whether the
X11 backend will ever see virtual monitors is an open question. This
rest of this commit message describes how it works under the native
backend.
Each virutal monitor consists of virtualized mode setting components:
* A virtual CRTC mode (MetaCrtcModeVirtual)
* A virtual CRTC (MetaCrtcVirtual)
* A virtual connector (MetaOutputVirtual)
In difference to the corresponding mode setting objects that represents
KMS objects, the virtual ones isn't directly tied to a MetaGpu, other
than the CoglFramebuffer being part of the GPU context of the primary
GPU, which is the case for all monitors no matter what GPU they are
connected to. Part of the reason for this is that a MetaGpu in practice
represents a mode setting device, and its CRTCs and outputs, are all
backed by real mode setting objects, while a virtual monitor is only
backed by a framebuffer that is tied to the primary GPU. Maybe this will
be reevaluated in the future, but since a virtual monitor is not tied to
any GPU currently, so is the case for the virtual mode setting objects.
The native rendering backend, including the cursor renderer, is adapted
to handle the situation where a CRTC does not have a GPU associated with
it; this in practice means that it e.g. will not try to upload HW cursor
buffers when the cursor is only on a virtual monitor. The same applies
to the native renderer, which is made to avoid creating
MetaOnscreenNative for views that are backed by virtual CRTCs, as well
as to avoid trying to mode set on such views.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
2021-01-26 15:49:28 +00:00
|
|
|
'backends/native/meta-virtual-monitor-native.c',
|
|
|
|
'backends/native/meta-virtual-monitor-native.h',
|
2019-03-29 21:03:27 +00:00
|
|
|
'backends/native/meta-xkb-utils.c',
|
|
|
|
'backends/native/meta-xkb-utils.h',
|
2019-09-12 20:07:20 +00:00
|
|
|
'compositor/meta-compositor-native.c',
|
|
|
|
'compositor/meta-compositor-native.h',
|
2022-07-15 09:06:12 +00:00
|
|
|
'compositor/meta-compositor-view-native.c',
|
|
|
|
'compositor/meta-compositor-view-native.h',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_wayland_eglstream
|
|
|
|
mutter_sources += [
|
|
|
|
'wayland/meta-wayland-egl-stream.c',
|
|
|
|
'wayland/meta-wayland-egl-stream.h',
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
2021-01-19 10:47:59 +00:00
|
|
|
mutter_private_enum_sources = []
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
|
2020-04-21 14:54:54 +00:00
|
|
|
if have_remote_desktop
|
2021-01-19 10:47:59 +00:00
|
|
|
mutter_private_enum_sources += [
|
|
|
|
'backends/meta-screen-cast.h',
|
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_native_backend
|
|
|
|
mutter_private_enum_sources += [
|
|
|
|
'backends/native/meta-backend-native-types.h',
|
2021-05-05 08:15:18 +00:00
|
|
|
'backends/native/meta-drm-buffer.h',
|
kms: Add way to run without mode setting
Currently our only entry point for DRM devices is MetaKms*, but in order
to run without being DRM master, we cannot use /dev/dri/card*, nor can
we be either of the existing MetaKmsImplDevice implementation (legacy
KMS, and atomic KMS), as they both depend on being DRM master.
Thus to handle running without being DRM master (i.e. headless), add a
"dummy" MetaKmsImplDevice implementation, that doesn't do any mode
setting at all, and that switches to operate on the render node, instead
of the card node itself.
This means we still use the same GBM code paths as the regular native
backend paths, except we never make use of any CRTC backed onscreen
framebuffers.
Eventually, this "dummy" MetaKmsImplDevice will be replaced separating
"KMS" device objects from "render" device objects, but that will require
more significant changes. It will, however, be necessary for e.g. going
from being headless, only having access to a render node, to turning
into a real session, with a seat, being DRM master, and having access to
a card node.
This is currently not hooked up, but will be in a later commit.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
2021-01-19 13:54:45 +00:00
|
|
|
'backends/native/meta-kms-types.h',
|
2021-01-19 10:47:59 +00:00
|
|
|
]
|
|
|
|
endif
|
|
|
|
|
|
|
|
mutter_built_sources = []
|
|
|
|
|
|
|
|
if mutter_private_enum_sources.length() > 0
|
2020-04-21 14:54:54 +00:00
|
|
|
mutter_private_enum_types = gnome.mkenums('meta-private-enum-types',
|
2021-01-19 10:47:59 +00:00
|
|
|
sources: mutter_private_enum_sources,
|
2020-04-21 14:54:54 +00:00
|
|
|
c_template: 'meta-private-enum-types.c.in',
|
|
|
|
h_template: 'meta-private-enum-types.h.in',
|
|
|
|
)
|
|
|
|
|
|
|
|
mutter_built_sources += mutter_private_enum_types
|
|
|
|
endif
|
|
|
|
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
dbus_display_config_built_sources = gnome.gdbus_codegen('meta-dbus-display-config',
|
2021-07-29 06:44:36 +00:00
|
|
|
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.DisplayConfig.xml'),
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
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',
|
2021-07-29 06:44:36 +00:00
|
|
|
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.IdleMonitor.xml'),
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
interface_prefix: 'org.gnome.Mutter.',
|
|
|
|
namespace: 'MetaDBus',
|
|
|
|
object_manager: true,
|
|
|
|
)
|
|
|
|
mutter_built_sources += dbus_idle_monitor_built_sources
|
|
|
|
|
2018-08-10 20:42:12 +00:00
|
|
|
if have_profiler
|
|
|
|
mutter_sources += [
|
|
|
|
'backends/meta-profiler.c',
|
|
|
|
'backends/meta-profiler.h',
|
|
|
|
]
|
|
|
|
|
2020-07-04 19:01:28 +00:00
|
|
|
if sysprof_dep.type_name() == 'pkgconfig'
|
|
|
|
sysprof_dbus_interfaces_dir = join_paths(sysprof_dep.get_pkgconfig_variable('datadir'), 'dbus-1', 'interfaces')
|
|
|
|
else
|
2021-08-05 14:18:44 +00:00
|
|
|
sysprof_dbus_interfaces_dir = join_paths(mutter_srcdir, 'subprojects', 'sysprof', 'src')
|
2020-07-04 19:01:28 +00:00
|
|
|
endif
|
2018-08-10 20:42:12 +00:00
|
|
|
|
2020-07-04 19:01:28 +00:00
|
|
|
sysprof3_dbus_file = join_paths(sysprof_dbus_interfaces_dir, 'org.gnome.Sysprof3.Profiler.xml')
|
2018-08-10 20:42:12 +00:00
|
|
|
dbus_sysprof3_profiler_built_sources = gnome.gdbus_codegen('meta-dbus-sysprof3-profiler',
|
|
|
|
sysprof3_dbus_file,
|
|
|
|
interface_prefix: 'org.gnome.',
|
|
|
|
namespace: 'MetaDBus',
|
|
|
|
)
|
|
|
|
mutter_built_sources += dbus_sysprof3_profiler_built_sources
|
|
|
|
endif
|
|
|
|
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
if have_native_backend
|
2018-11-10 08:25:57 +00:00
|
|
|
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
|
|
|
|
|
2021-03-30 09:07:38 +00:00
|
|
|
dbus_login1_built_sources = gnome.gdbus_codegen('meta-dbus-login1',
|
2021-07-29 06:44:36 +00:00
|
|
|
join_paths(dbus_interfaces_dir, 'org.freedesktop.login1.xml'),
|
2021-03-30 09:07:38 +00:00
|
|
|
interface_prefix: 'org.freedesktop.login1.',
|
|
|
|
namespace: 'MetaDbusLogin1',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
)
|
|
|
|
mutter_built_sources += dbus_login1_built_sources
|
|
|
|
endif
|
|
|
|
|
|
|
|
if have_remote_desktop
|
|
|
|
dbus_remote_desktop_built_sources = gnome.gdbus_codegen('meta-dbus-remote-desktop',
|
2021-07-29 06:44:36 +00:00
|
|
|
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.RemoteDesktop.xml'),
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
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',
|
2021-07-29 06:44:36 +00:00
|
|
|
join_paths(dbus_interfaces_dir, 'org.gnome.Mutter.ScreenCast.xml'),
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
interface_prefix: 'org.gnome.Mutter.',
|
|
|
|
namespace: 'MetaDBus',
|
|
|
|
)
|
|
|
|
mutter_built_sources += dbus_screen_cast_built_sources
|
|
|
|
endif
|
|
|
|
|
2021-10-21 11:40:55 +00:00
|
|
|
dbus_rtkit_built_sources = gnome.gdbus_codegen('meta-dbus-rtkit1',
|
2021-07-29 06:44:36 +00:00
|
|
|
join_paths(dbus_interfaces_dir, 'org.freedesktop.RealtimeKit1.xml'),
|
2021-10-21 11:40:55 +00:00
|
|
|
interface_prefix: 'org.freedesktop.',
|
|
|
|
namespace: 'MetaDbus',
|
|
|
|
)
|
|
|
|
mutter_built_sources += dbus_rtkit_built_sources
|
|
|
|
|
2021-10-29 09:23:18 +00:00
|
|
|
dbus_gsd_color_built_sources = gnome.gdbus_codegen('meta-dbus-gsd-color',
|
|
|
|
join_paths(dbus_interfaces_dir, 'org.gnome.SettingsDaemon.Color.xml'),
|
|
|
|
interface_prefix: 'org.gnome.',
|
|
|
|
namespace: 'MetaDbus',
|
|
|
|
)
|
|
|
|
mutter_built_sources += dbus_gsd_color_built_sources
|
|
|
|
|
2019-12-06 18:05:32 +00:00
|
|
|
wayland_protocol_server_headers = []
|
|
|
|
wayland_protocol_client_headers = []
|
|
|
|
wayland_protocol_sources = []
|
|
|
|
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
if have_wayland
|
|
|
|
# Format:
|
|
|
|
# - protocol name
|
|
|
|
# - protocol stability ('private', 'stable' or 'unstable')
|
|
|
|
# - protocol version (if stability is 'unstable')
|
|
|
|
wayland_protocols = [
|
|
|
|
['gtk-shell', 'private', ],
|
|
|
|
['keyboard-shortcuts-inhibit', 'unstable', 'v1', ],
|
|
|
|
['linux-dmabuf', 'unstable', 'v1', ],
|
|
|
|
['pointer-constraints', 'unstable', 'v1', ],
|
|
|
|
['pointer-gestures', 'unstable', 'v1', ],
|
2020-10-06 17:30:13 +00:00
|
|
|
['presentation-time', 'stable', ],
|
2020-05-13 16:06:10 +00:00
|
|
|
['primary-selection', 'unstable', 'v1', ],
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
['relative-pointer', 'unstable', 'v1', ],
|
2022-01-19 10:49:32 +00:00
|
|
|
['single-pixel-buffer', 'staging', 'v1', ],
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
['tablet', 'unstable', 'v2', ],
|
|
|
|
['text-input', 'unstable', 'v3', ],
|
2018-11-24 19:25:38 +00:00
|
|
|
['viewporter', 'stable', ],
|
2021-04-23 21:22:47 +00:00
|
|
|
['xdg-activation', 'staging', 'v1', ],
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
['xdg-foreign', 'unstable', 'v1', ],
|
|
|
|
['xdg-output', 'unstable', 'v1', ],
|
|
|
|
['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))
|
2021-04-23 21:22:05 +00:00
|
|
|
elif protocol_type == 'staging'
|
|
|
|
protocol_version = p.get(2)
|
|
|
|
output_base = '@0@-@1@'.format(protocol_name, protocol_version)
|
|
|
|
input = join_paths(protocols_dir,
|
|
|
|
'@0@/@1@/@2@.xml'.format(protocol_type,
|
|
|
|
protocol_name,
|
|
|
|
output_base))
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
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
|
|
|
|
|
2019-12-06 18:05:32 +00:00
|
|
|
wayland_protocol_server_headers += custom_target('@0@ server header'.format(output_base),
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
input: input,
|
|
|
|
output: '@0@-server-protocol.h'.format(output_base),
|
|
|
|
command: [
|
|
|
|
wayland_scanner,
|
|
|
|
'server-header',
|
|
|
|
'@INPUT@', '@OUTPUT@',
|
|
|
|
]
|
|
|
|
)
|
|
|
|
|
2019-12-06 18:05:32 +00:00
|
|
|
# used by tests
|
|
|
|
wayland_protocol_client_headers += custom_target('@0@ client header'.format(output_base),
|
|
|
|
input: input,
|
|
|
|
output: '@0@-client-protocol.h'.format(output_base),
|
|
|
|
command: [
|
|
|
|
wayland_scanner,
|
|
|
|
'client-header',
|
|
|
|
'@INPUT@', '@OUTPUT@',
|
|
|
|
]
|
|
|
|
)
|
|
|
|
|
|
|
|
wayland_protocol_sources += custom_target('@0@ source'.format(output_base),
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
input: input,
|
|
|
|
output: '@0@-protocol.c'.format(output_base),
|
|
|
|
command: [
|
|
|
|
wayland_scanner,
|
|
|
|
'private-code',
|
|
|
|
'@INPUT@', '@OUTPUT@',
|
|
|
|
]
|
|
|
|
)
|
|
|
|
endforeach
|
|
|
|
endif
|
|
|
|
|
2019-12-06 18:05:32 +00:00
|
|
|
mutter_built_sources += wayland_protocol_server_headers
|
|
|
|
mutter_built_sources += wayland_protocol_sources
|
|
|
|
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
subdir('meta')
|
|
|
|
|
|
|
|
mutter_built_sources += mutter_enum_types
|
|
|
|
|
|
|
|
libmutter = shared_library(libmutter_name,
|
2020-09-29 23:19:11 +00:00
|
|
|
mutter_sources,
|
|
|
|
mutter_built_sources,
|
2019-01-17 22:21:37 +00:00
|
|
|
version: '0.0.0',
|
|
|
|
soversion: 0,
|
2019-01-23 02:25:35 +00:00
|
|
|
gnu_symbol_visibility: 'hidden',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
include_directories: mutter_includes,
|
2022-04-28 14:09:11 +00:00
|
|
|
c_args: [
|
|
|
|
mutter_c_args,
|
|
|
|
'-DG_LOG_DOMAIN="libmutter"',
|
|
|
|
],
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
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,
|
|
|
|
],
|
|
|
|
)
|
|
|
|
|
2022-05-27 15:12:46 +00:00
|
|
|
mutter = executable('mutter',
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
sources: [
|
|
|
|
files('core/mutter.c'),
|
|
|
|
],
|
|
|
|
include_directories: mutter_includes,
|
2022-04-28 14:09:11 +00:00
|
|
|
c_args: [
|
|
|
|
mutter_c_args,
|
|
|
|
'-DG_LOG_DOMAIN="mutter"',
|
|
|
|
],
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
dependencies: [libmutter_dep],
|
|
|
|
install_dir: bindir,
|
|
|
|
install: true,
|
|
|
|
)
|
2022-03-25 10:50:52 +00:00
|
|
|
if have_x11
|
|
|
|
executable('mutter-restart-helper',
|
|
|
|
sources: [
|
|
|
|
files('core/restart-helper.c'),
|
|
|
|
],
|
|
|
|
include_directories: [
|
|
|
|
top_includepath,
|
|
|
|
],
|
|
|
|
c_args: [
|
|
|
|
mutter_c_args,
|
|
|
|
'-DG_LOG_DOMAIN="mutter-restart-helper"',
|
|
|
|
],
|
|
|
|
dependencies: [
|
|
|
|
x11_dep,
|
|
|
|
xcomposite_dep,
|
|
|
|
],
|
|
|
|
install_dir: libexecdir,
|
|
|
|
install: true,
|
|
|
|
)
|
|
|
|
endif
|
2018-11-07 11:28:57 +00:00
|
|
|
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
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_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],
|
|
|
|
],
|
2018-11-06 19:50:24 +00:00
|
|
|
dependencies: [
|
|
|
|
mutter_deps,
|
|
|
|
libmutter_dep,
|
|
|
|
],
|
2018-12-22 10:28:46 +00:00
|
|
|
extra_args: mutter_c_args + introspection_args,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
install_dir_gir: pkglibdir,
|
|
|
|
install_dir_typelib: pkglibdir,
|
|
|
|
install: true
|
|
|
|
)
|
|
|
|
endif
|
|
|
|
|
2019-01-08 08:05:08 +00:00
|
|
|
pkg.generate(libmutter,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
name: 'Meta',
|
|
|
|
filebase: 'libmutter-' + libmutter_api_version,
|
|
|
|
description: 'Mutter compositor and window manager library',
|
|
|
|
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,
|
|
|
|
],
|
2019-01-08 21:28:18 +00:00
|
|
|
install_dir: pcdir,
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
subdir('compositor/plugins')
|
|
|
|
|
2019-02-13 17:51:21 +00:00
|
|
|
if have_core_tests
|
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'.
2018-05-22 13:55:35 +00:00
|
|
|
subdir('tests')
|
|
|
|
endif
|