1SUMMARY = "Window and compositing manager based on Clutter"
2LICENSE = "GPL-2.0-only"
3LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
4
5DEPENDS = " \
6    xserver-xorg-cvt-native \
7    wayland-native \
8    virtual/libx11 \
9    colord \
10    graphene \
11    gtk4 \
12    gdk-pixbuf \
13    cairo \
14    pango \
15    gsettings-desktop-schemas \
16    json-glib \
17    libei \
18    libxtst \
19    libxkbfile \
20    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xinerama', '', d)} \
21    xwayland \
22"
23
24
25inherit gnomebase gsettings gobject-introspection gettext features_check
26
27SRC_URI[archive.sha256sum] = "bb3f7d77aebdea9d317d3f5ef03868e4e7969da423ac495e33a16d61db2c9373"
28
29# x11 is still manadatory - see meson.build
30REQUIRED_DISTRO_FEATURES = "wayland x11 polkit"
31
32# systemd can be replaced by libelogind (not available atow - make systemd
33# mandatory distro feature)
34LOGIND ?= "systemd"
35REQUIRED_DISTRO_FEATURES += "systemd"
36
37# profiler requires sysprof 3.34 which is not willing to build atow
38PACKAGECONFIG ??= " \
39    native-backend \
40    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl glx', '', d)} \
41    sm \
42    startup-notification \
43    gnome-desktop \
44"
45
46EXTRA_OEMESON += " \
47    -Dtests=false \
48    -Dnative_tests=false \
49    -Dxwayland_path=${bindir}/Xwayland \
50"
51
52# combi-config - see meson_options.txt for more details
53PACKAGECONFIG[native-backend] = "-Dnative_backend=true -Dudev=true, -Dnative_backend=false -Dudev=false, libdrm virtual/libgbm libinput ${LOGIND} virtual/egl virtual/libgles2 udev"
54PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl"
55PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false"
56PACKAGECONFIG[libdisplay-info] = "-Dlibdisplay_info=true, -Dlibdisplay_info=false, libdisplay-info"
57PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom"
58# Remove depending on pipewire-0.2 when mutter is upgraded to 3.36+
59PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire"
60PACKAGECONFIG[gnome-desktop] = "-Dlibgnome_desktop=true, -Dlibgnome_desktop=false, gnome-desktop gnome-settings-daemon"
61PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm"
62PACKAGECONFIG[sound-player] = "-Dsound_player=true, -Dsound_player=false, libcanberra"
63PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof"
64PACKAGECONFIG[startup-notification] = "-Dstartup_notification=true, -Dstartup_notification=false, startup-notification, startup-notification"
65
66MUTTER_API_NAME = "mutter-14"
67
68do_install:prepend() {
69    sed -i -e 's|${B}/||g' ${B}/cogl/cogl/cogl-enum-types.c
70    sed -i -e 's|${B}/||g' ${B}/clutter/clutter/clutter-enum-types.c
71    sed -i -e 's|${B}/||g' ${B}/src/meta-private-enum-types.c
72    sed -i -e 's|${B}/||g' ${B}/src/meta/meta-enum-types.c
73}
74
75do_install:append() {
76    # Add gir links in standard paths. That makes dependents life much easier
77    # to find them
78    install -d ${D}${datadir}/gir-1.0
79    for gir_full in `find ${D}${libdir}/${MUTTER_API_NAME} -name '*.gir'`; do
80        gir=`basename "$gir_full"`
81        ln -sr "${D}${libdir}/${MUTTER_API_NAME}/$gir" "${D}${datadir}/gir-1.0/$gir"
82    done
83}
84
85GSETTINGS_PACKAGE = "${PN}-gsettings"
86
87PACKAGES =+ "${PN}-tests ${PN}-gsettings"
88
89FILES:${PN} += " \
90    ${datadir}/gnome-control-center \
91    ${datadir}/gir-1.0 \
92    ${libdir}/${MUTTER_API_NAME}/lib*${SOLIBS} \
93    ${libdir}/${MUTTER_API_NAME}/*.typelib \
94    ${libdir}/${MUTTER_API_NAME}/plugins \
95"
96
97FILES:${PN}-tests += " \
98    ${datadir}/installed-tests \
99    ${datadir}/${MUTTER_API_NAME}/tests \
100    ${libexecdir}/installed-tests/${MUTTER_API_NAME} \
101"
102
103FILES:${PN}-dev += " \
104    ${libdir}/${MUTTER_API_NAME}/*.gir \
105    ${libdir}/${MUTTER_API_NAME}/lib*.so \
106"
107
108RDEPENDS:${PN} += "${PN}-gsettings gsettings-desktop-schemas"
109
110