1SUMMARY = "Weston, a Wayland compositor" 2DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" 3HOMEPAGE = "http://wayland.freedesktop.org" 4LICENSE = "MIT" 5LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ 6 file://libweston/compositor.c;endline=27;md5=eb6d5297798cabe2ddc65e2af519bcf0 \ 7 " 8 9SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \ 10 file://weston.png \ 11 file://weston.desktop \ 12 file://xwayland.weston-start \ 13 file://systemd-notify.weston-start \ 14 " 15 16SRC_URI[sha256sum] = "89646ca0d9f8d413c2767e5c3828eaa3fa149c2a105b3729a6894fa7cf1549e7" 17 18UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" 19 20inherit meson pkgconfig useradd 21 22# depends on virtual/egl 23# 24require ${THISDIR}/required-distro-features.inc 25 26DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0" 27DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" 28 29LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}" 30 31WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" 32 33EXTRA_OEMESON += "-Dpipewire=false" 34 35PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayland egl clients', '', d)} \ 36 ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ 37 ${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \ 38 ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \ 39 ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'sysvinit', 'launcher-libseat', '', d)} \ 40 image-jpeg \ 41 screenshare \ 42 shell-desktop \ 43 shell-fullscreen \ 44 shell-ivi" 45 46# Can be 'damage', 'im', 'egl', 'shm', 'touch', 'dmabuf-feedback', 'dmabuf-v4l', 'dmabuf-egl' or 'all' 47SIMPLECLIENTS ?= "all" 48 49# 50# Compositor choices 51# 52# Weston on KMS 53PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev virtual/egl virtual/libgles2 virtual/libgbm mtdev" 54# Weston on Wayland (nested Weston) 55PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2" 56# Weston on X11 57PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcb libxcursor cairo" 58# Headless Weston 59PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false" 60# Weston on framebuffer 61PACKAGECONFIG[fbdev] = "-Ddeprecated-backend-fbdev=true,-Ddeprecated-backend-fbdev=false,udev mtdev" 62# Weston on RDP 63PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp" 64# weston-launch 65PACKAGECONFIG[launch] = "-Ddeprecated-weston-launch=true,-Ddeprecated-weston-launch=false,drm" 66# VA-API desktop recorder 67PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva" 68# Weston with EGL support 69PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl" 70# Weston with lcms support 71PACKAGECONFIG[lcms] = "-Dcolor-management-lcms=true,-Dcolor-management-lcms=false,lcms" 72# Weston with webp support 73PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp" 74# Weston with systemd-login support 75PACKAGECONFIG[systemd] = "-Dsystemd=true -Dlauncher-logind=true,-Dsystemd=false -Dlauncher-logind=false,systemd dbus" 76# Weston with Xwayland support (requires X11 and Wayland) 77PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false" 78# colord CMS support 79PACKAGECONFIG[colord] = "-Dcolor-management-colord=true,-Dcolor-management-colord=false,colord" 80# Clients support 81PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLECLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false" 82# Virtual remote output with GStreamer on DRM backend 83PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base" 84# Weston with screen-share support 85PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false" 86# Traditional desktop shell 87PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false" 88# Fullscreen shell 89PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false" 90# In-Vehicle Infotainment (IVI) shell 91PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false" 92# JPEG image loading support 93PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg" 94# support libseat based launch 95PACKAGECONFIG[launcher-libseat] = "-Dlauncher-libseat=true,-Dlauncher-libseat=false,seatd" 96 97do_install:append() { 98 # Weston doesn't need the .la files to load modules, so wipe them 99 rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la 100 101 # If X11, ship a desktop file to launch it 102 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then 103 install -d ${D}${datadir}/applications 104 install ${WORKDIR}/weston.desktop ${D}${datadir}/applications 105 106 install -d ${D}${datadir}/icons/hicolor/48x48/apps 107 install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps 108 fi 109 110 if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then 111 install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland 112 fi 113 114 if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then 115 install -Dm 644 ${WORKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify 116 fi 117 118 if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then 119 chmod u+s ${D}${bindir}/weston-launch 120 fi 121} 122 123PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ 124 libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" 125 126FILES:${PN}-dev += "${libdir}/${BPN}/libexec_weston.so" 127FILES:${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}" 128 129FILES:libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" 130SUMMARY:libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." 131 132FILES:${PN}-examples = "${bindir}/*" 133 134FILES:${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" 135RDEPENDS:${PN}-xwayland += "xwayland" 136 137RDEPENDS:${PN} += "xkeyboard-config" 138RRECOMMENDS:${PN} = "weston-init liberation-fonts" 139RRECOMMENDS:${PN}-dev += "wayland-protocols" 140 141USERADD_PACKAGES = "${PN}" 142GROUPADD_PARAM:${PN} = "--system weston-launch" 143