wayland: add recipe

This commit is contained in:
Gerasim Troeglazov
2022-11-17 14:03:50 +10:00
parent ca2ed429c2
commit ef30cb79a7

View File

@@ -0,0 +1,110 @@
SUMMARY="Core Wayland protocols and libraries"
DESCRIPTION="Wayland is a project to define a protocol for a compositor to talk to its clients as \
well as a library implementation of the protocol. The compositor can be a standalone display \
server running on Linux kernel modesetting and evdev input devices, an X application, or a wayland \
client itself. The clients can be traditional applications, X servers (rootless or fullscreen) or \
other display servers.
The wayland protocol is essentially only about input handling and buffer management. The \
compositor receives input events and forwards them to the relevant client. The clients creates \
buffers and renders into them and notifies the compositor when it needs to redraw. The protocol \
also handles drag and drop, selections, window management and other interactions that must go \
through the compositor. However, the protocol does not handle rendering, which is one of the \
features that makes wayland so simple. All clients are expected to handle rendering themselves, \
typically through cairo or OpenGL.
The weston compositor is a reference implementation of a wayland compositor and the weston \
repository also includes a few example clients."
HOMEPAGE="https://gitlab.freedesktop.org/wayland/wayland"
COPYRIGHT="2008-2012 Kristian Høgsberg
2010-2012 Intel Corporation
2011 Benjamin Franzke
2012 Collabora, Ltd."
LICENSE="MIT"
REVISION="1"
srcGitRev="0cf06ac5dcb38b2f38778f002df306cd42b62b23"
SOURCE_URI="https://github.com/X547/wayland/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="7b16c96604e039e09bacdf72c793531d59e7a7fda97673b9f8a07c46db2ec95f"
SOURCE_DIR="wayland-$srcGitRev"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="0.21.90"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
libEGLVersion="1.21.90"
libEGLVersionCompat="$libEGLVersion compat >= ${libEGLVersion%%.*}"
PROVIDES="
wayland$secondaryArchSuffix = $portVersion
cmd:wayland_scanner
lib:libwayland_client$secondaryArchSuffix = $libVersionCompat
lib:libwayland_cursor$secondaryArchSuffix = $libVersionCompat
lib:libwayland_egl$secondaryArchSuffix = $libEGLVersionCompat
lib:libwayland_server$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libexpat$secondaryArchSuffix
lib:libffi$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
"
PROVIDES_devel="
wayland${secondaryArchSuffix}_devel = $portVersion
devel:libwayland_client$secondaryArchSuffix = $libVersionCompat
devel:libwayland_cursor$secondaryArchSuffix = $libVersionCompat
devel:libwayland_egl$secondaryArchSuffix = $libEGLVersionCompat
devel:libwayland_server$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
wayland$secondaryArchSuffix == $portVersion base
devel:libffi$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libexpat$secondaryArchSuffix
devel:libffi$secondaryArchSuffix
devel:libxml2$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:meson
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
"
BUILD()
{
meson build --buildtype=release \
--prefix=$prefix \
--datadir=$dataDir \
--includedir=$includeDir \
--libdir=$libDir \
-Ddocumentation=false
ninja -C build
}
TEST_REQUIRES="
cmd:awk
cmd:diff
"
INSTALL()
{
ninja -C build install
prepareInstalledDevelLibs \
libwayland-client libwayland-cursor libwayland-egl libwayland-server
fixPkgconfig
packageEntries devel \
$developDir
}
TEST()
{
ninja -C build test
}