13 |
13 |
inherit git-r3
|
14 |
14 |
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/mutter.git"
|
15 |
15 |
SRC_URI=""
|
16 |
|
SLOT="0/14" # This can get easily out of date, but better than 9967
|
|
16 |
SLOT="0/15" # This can get easily out of date, but better than 9967
|
17 |
17 |
else
|
18 |
|
KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
|
|
18 |
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
|
19 |
19 |
SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
|
20 |
20 |
fi
|
21 |
21 |
|
22 |
|
IUSE="debug elogind gnome gtk-doc input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia"
|
|
22 |
IUSE="debug elogind gnome gtk-doc input_devices_wacom +introspection screencast sysprof systemd test udev wayland X +xwayland video_cards_nvidia"
|
23 |
23 |
# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
|
24 |
24 |
REQUIRED_USE="
|
|
25 |
|| ( X wayland )
|
25 |
26 |
gtk-doc? ( introspection )
|
26 |
27 |
wayland? ( ^^ ( elogind systemd ) udev )
|
27 |
|
test? ( wayland )"
|
|
28 |
test? ( screencast wayland )"
|
28 |
29 |
RESTRICT="!test? ( test )"
|
29 |
30 |
|
30 |
31 |
# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
|
... | ... | |
34 |
35 |
# in Xwayland after mutter is installed, Xwayland would fail to be started by mutter. mutter already hard-depends on libei, so there's
|
35 |
36 |
# really no extra deps here (besides xdg-desktop-portal, but we want that too, anyhow).
|
36 |
37 |
# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
|
|
38 |
# dev-libs/wayland is always needed at build time due to https://bugs.gentoo.org/937632
|
37 |
39 |
RDEPEND="
|
38 |
40 |
>=media-libs/graphene-1.10.2[introspection?]
|
39 |
41 |
x11-libs/gdk-pixbuf:2
|
... | ... | |
41 |
43 |
>=x11-libs/cairo-1.14[X]
|
42 |
44 |
>=x11-libs/pixman-0.42
|
43 |
45 |
>=dev-libs/fribidi-1.0.0
|
44 |
|
>=gnome-base/gsettings-desktop-schemas-42.0[introspection?]
|
45 |
|
>=dev-libs/glib-2.75.1:2
|
|
46 |
>=gnome-base/gsettings-desktop-schemas-47_beta[introspection?]
|
|
47 |
>=dev-libs/glib-2.81.1:2
|
46 |
48 |
gnome-base/gnome-settings-daemon
|
47 |
|
>=x11-libs/libxkbcommon-0.4.3
|
48 |
|
x11-libs/libICE
|
|
49 |
>=x11-libs/libxkbcommon-0.4.3[X?]
|
49 |
50 |
>=app-accessibility/at-spi2-core-2.46:2[introspection?]
|
50 |
51 |
sys-apps/dbus
|
51 |
52 |
>=x11-misc/colord-1.4.5:=
|
52 |
53 |
>=media-libs/lcms-2.6:2
|
53 |
54 |
>=media-libs/harfbuzz-2.6.0:=
|
54 |
55 |
>=dev-libs/libei-1.0.901
|
55 |
|
media-libs/libdisplay-info:=
|
|
56 |
>=media-libs/libdisplay-info-0.2:=
|
56 |
57 |
|
57 |
58 |
gnome? ( gnome-base/gnome-desktop:4= )
|
58 |
59 |
|
59 |
60 |
>=media-libs/libcanberra-0.26
|
60 |
61 |
|
61 |
|
media-libs/libglvnd[X]
|
|
62 |
media-libs/libglvnd
|
62 |
63 |
|
|
64 |
>=dev-libs/wayland-1.23.0
|
63 |
65 |
wayland? (
|
64 |
|
>=dev-libs/wayland-protocols-1.33
|
65 |
|
>=dev-libs/wayland-1.22.0
|
|
66 |
>=dev-libs/wayland-protocols-1.36
|
66 |
67 |
|
67 |
68 |
>=x11-libs/libdrm-2.4.118
|
68 |
69 |
media-libs/mesa[gbm(+)]
|
69 |
|
>=dev-libs/libinput-1.19.0:=
|
|
70 |
>=dev-libs/libinput-1.26.0:=
|
70 |
71 |
|
71 |
72 |
elogind? ( sys-auth/elogind )
|
72 |
|
>=x11-base/xwayland-23.2.1[libei(+)]
|
|
73 |
xwayland? ( >=x11-base/xwayland-23.2.1[libei(+)] )
|
73 |
74 |
video_cards_nvidia? ( gui-libs/egl-wayland )
|
74 |
75 |
)
|
75 |
76 |
udev? (
|
... | ... | |
77 |
78 |
>=dev-libs/libgudev-238
|
78 |
79 |
)
|
79 |
80 |
systemd? ( sys-apps/systemd )
|
80 |
|
x11-libs/libSM
|
81 |
81 |
input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
|
82 |
|
>=x11-libs/startup-notification-0.7
|
83 |
|
screencast? ( >=media-video/pipewire-0.3.33:= )
|
|
82 |
screencast? ( >=media-video/pipewire-1.2.0:= )
|
84 |
83 |
introspection? ( >=dev-libs/gobject-introspection-1.54:= )
|
85 |
84 |
test? (
|
86 |
85 |
>=x11-libs/gtk+-3.19.8:3[X,introspection?]
|
87 |
|
gnome-extra/zenity
|
88 |
86 |
)
|
89 |
87 |
sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 >=dev-util/sysprof-3.46.0 )
|
90 |
88 |
"
|
91 |
|
# for now upstream has "have_x11 = true" in the meson.build, but sooner or later upstream is going to make X optional.
|
92 |
|
# X? (
|
|
89 |
|
|
90 |
X11_CLIENT_DEPS="
|
|
91 |
>=gui-libs/gtk-4.0.0:4[X,introspection?]
|
|
92 |
media-libs/libglvnd[X]
|
|
93 |
>=x11-libs/libX11-1.7.0
|
|
94 |
>=x11-libs/libXcomposite-0.4
|
|
95 |
x11-libs/libXcursor
|
|
96 |
x11-libs/libXdamage
|
|
97 |
x11-libs/libXext
|
|
98 |
>=x11-libs/libXfixes-6
|
|
99 |
>=x11-libs/libXi-1.7.4
|
|
100 |
x11-misc/xkeyboard-config
|
|
101 |
>=x11-libs/libXrandr-1.5.0
|
|
102 |
x11-libs/libxcb:=
|
|
103 |
x11-libs/libXinerama
|
|
104 |
x11-libs/libXau
|
|
105 |
>=x11-libs/startup-notification-0.7
|
|
106 |
"
|
|
107 |
|
93 |
108 |
RDEPEND+="
|
94 |
|
>=gui-libs/gtk-4.0.0:4[X,introspection?]
|
95 |
|
>=x11-libs/libX11-1.7.0
|
96 |
|
>=x11-libs/libXcomposite-0.4
|
97 |
|
x11-libs/libXcursor
|
98 |
|
x11-libs/libXdamage
|
99 |
|
x11-libs/libXext
|
100 |
|
>=x11-libs/libXfixes-6
|
101 |
|
>=x11-libs/libXi-1.7.4
|
102 |
|
x11-libs/libXtst
|
|
109 |
X? (
|
|
110 |
${X11_CLIENT_DEPS}
|
|
111 |
x11-libs/libICE
|
103 |
112 |
x11-libs/libxkbfile
|
104 |
|
x11-misc/xkeyboard-config
|
105 |
|
>=x11-libs/libxkbcommon-0.4.3[X]
|
106 |
|
x11-libs/libXrender
|
107 |
|
>=x11-libs/libXrandr-1.5.0
|
108 |
|
x11-libs/libxcb:=
|
109 |
|
x11-libs/libXinerama
|
110 |
|
x11-libs/libXau
|
|
113 |
x11-libs/libXtst
|
|
114 |
x11-libs/libSM
|
|
115 |
)
|
|
116 |
wayland? ( xwayland? ( ${X11_CLIENT_DEPS} ) )
|
111 |
117 |
"
|
112 |
|
# )"
|
113 |
118 |
DEPEND="${RDEPEND}
|
114 |
119 |
x11-base/xorg-proto
|
115 |
120 |
sysprof? ( >=dev-util/sysprof-common-3.38.0 )
|
... | ... | |
127 |
132 |
>=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
|
128 |
133 |
')
|
129 |
134 |
app-text/docbook-xml-dtd:4.5
|
130 |
|
x11-misc/xvfb-run
|
|
135 |
X? (
|
|
136 |
gnome-extra/zenity
|
|
137 |
x11-misc/xvfb-run
|
|
138 |
)
|
131 |
139 |
)
|
132 |
140 |
wayland? (
|
133 |
141 |
>=sys-kernel/linux-headers-4.4
|
... | ... | |
165 |
173 |
$(meson_use wayland gles2)
|
166 |
174 |
#gles2_libname
|
167 |
175 |
-Degl=true
|
168 |
|
-Dglx=true
|
|
176 |
$(meson_use X glx)
|
169 |
177 |
$(meson_use wayland)
|
170 |
|
$(meson_use wayland xwayland)
|
|
178 |
)
|
|
179 |
|
|
180 |
if use wayland; then
|
|
181 |
emesonargs+=(
|
|
182 |
$(meson_use xwayland)
|
|
183 |
)
|
|
184 |
else
|
|
185 |
emesonargs+=(
|
|
186 |
-Dxwayland=false
|
|
187 |
)
|
|
188 |
fi
|
|
189 |
|
|
190 |
emesonargs+=(
|
171 |
191 |
$(meson_use systemd)
|
172 |
192 |
$(meson_use wayland native_backend)
|
173 |
193 |
$(meson_use screencast remote_desktop)
|
... | ... | |
176 |
196 |
-Dudev_dir=$(get_udevdir)
|
177 |
197 |
$(meson_use input_devices_wacom libwacom)
|
178 |
198 |
-Dsound_player=true
|
179 |
|
-Dpango_ft2=true
|
180 |
199 |
-Dstartup_notification=true
|
181 |
|
-Dsm=true
|
|
200 |
$(meson_use X sm)
|
182 |
201 |
$(meson_use introspection)
|
183 |
202 |
$(meson_use gtk-doc docs)
|
184 |
203 |
$(meson_use test cogl_tests)
|
185 |
|
$(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
|
186 |
|
-Dnative_tests=false
|
187 |
204 |
$(meson_use test clutter_tests)
|
188 |
|
$(meson_use test tests)
|
|
205 |
$(meson_use test mutter_tests)
|
|
206 |
$(meson_feature test tests)
|
189 |
207 |
-Dkvm_tests=false
|
190 |
208 |
-Dtty_tests=false
|
191 |
209 |
$(meson_use sysprof profiler)
|
192 |
210 |
-Dinstalled_tests=false
|
|
211 |
$(meson_use X x11)
|
193 |
212 |
|
194 |
213 |
#verbose # Let upstream choose default for verbose mode
|
195 |
214 |
#xwayland_path
|
... | ... | |
217 |
236 |
gnome2_environment_reset
|
218 |
237 |
export XDG_DATA_DIRS="${EPREFIX}"/usr/share
|
219 |
238 |
glib-compile-schemas "${BUILD_DIR}"/data
|
220 |
|
GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
|
|
239 |
GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test
|
221 |
240 |
}
|
222 |
241 |
|
223 |
242 |
pkg_postinst() {
|