1SUMMARY="Core Wayland protocols and libraries"
2DESCRIPTION="Wayland is a project to define a protocol for a compositor to talk to its clients as \
3well as a library implementation of the protocol. The compositor can be a standalone display \
4server running on Linux kernel modesetting and evdev input devices, an X application, or a wayland \
5client itself.  The clients can be traditional applications, X servers (rootless or fullscreen) or \
6other display servers.
7
8The wayland protocol is essentially only about input handling and buffer management. The \
9compositor receives input events and forwards them to the relevant client. The clients creates \
10buffers and renders into them and notifies the compositor when it needs to redraw. The protocol \
11also handles drag and drop, selections, window management and other interactions that must go \
12through the compositor.  However, the protocol does not handle rendering, which is one of the \
13features that makes wayland so simple. All clients are expected to handle rendering themselves, \
14typically through cairo or OpenGL.
15
16The weston compositor is a reference implementation of a wayland compositor and the weston \
17repository also includes a few example clients."
18HOMEPAGE="https://gitlab.freedesktop.org/wayland/wayland"
19COPYRIGHT="2008-2012 Kristian H��gsberg
20	2010-2012 Intel Corporation
21	2011 Benjamin Franzke
22	2012 Collabora, Ltd."
23LICENSE="MIT"
24REVISION="2"
25srcGitRev="0cf06ac5dcb38b2f38778f002df306cd42b62b23"
26SOURCE_URI="https://github.com/X547/wayland/archive/$srcGitRev.tar.gz"
27CHECKSUM_SHA256="7b16c96604e039e09bacdf72c793531d59e7a7fda97673b9f8a07c46db2ec95f"
28SOURCE_DIR="wayland-$srcGitRev"
29
30ARCHITECTURES="all !x86_gcc2"
31SECONDARY_ARCHITECTURES="x86"
32
33libVersion="0.21.90"
34libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
35libEGLVersion="1.21.90"
36libEGLVersionCompat="$libEGLVersion compat >= ${libEGLVersion%%.*}"
37
38PROVIDES="
39	wayland$secondaryArchSuffix = $portVersion
40	cmd:wayland_scanner
41	lib:libwayland_client$secondaryArchSuffix = $libVersionCompat
42	lib:libwayland_cursor$secondaryArchSuffix = $libVersionCompat
43	lib:libwayland_egl$secondaryArchSuffix = $libEGLVersionCompat
44	lib:libwayland_server$secondaryArchSuffix = $libVersionCompat
45	"
46REQUIRES="
47	haiku$secondaryArchSuffix
48	lib:libexpat$secondaryArchSuffix
49	lib:libffi$secondaryArchSuffix
50	lib:libxml2$secondaryArchSuffix
51	"
52
53PROVIDES_devel="
54	wayland${secondaryArchSuffix}_devel = $portVersion
55	devel:libwayland_client$secondaryArchSuffix = $libVersionCompat
56	devel:libwayland_cursor$secondaryArchSuffix = $libVersionCompat
57	devel:libwayland_egl$secondaryArchSuffix = $libEGLVersionCompat
58	devel:libwayland_server$secondaryArchSuffix = $libVersionCompat
59	"
60REQUIRES_devel="
61	wayland$secondaryArchSuffix == $portVersion base
62	devel:libffi$secondaryArchSuffix
63	"
64
65BUILD_REQUIRES="
66	haiku${secondaryArchSuffix}_devel
67	devel:libexpat$secondaryArchSuffix
68	devel:libffi$secondaryArchSuffix
69	devel:libxml2$secondaryArchSuffix
70	"
71BUILD_PREREQUIRES="
72	cmd:cmake
73	cmd:gcc$secondaryArchSuffix
74	cmd:meson
75	cmd:ninja
76	cmd:pkg_config$secondaryArchSuffix
77	"
78
79BUILD()
80{
81	meson build --buildtype=release \
82		--prefix=$prefix \
83		--datadir=$dataDir \
84		--includedir=$includeDir \
85		--libdir=$libDir \
86		-Ddocumentation=false
87	ninja -C build
88}
89
90TEST_REQUIRES="
91	cmd:awk
92	cmd:diff
93	"
94
95INSTALL()
96{
97	ninja -C build install
98
99	prepareInstalledDevelLibs \
100		libwayland-client libwayland-cursor libwayland-egl libwayland-server
101	fixPkgconfig
102
103	packageEntries devel \
104		$developDir
105}
106
107TEST()
108{
109	ninja -C build test
110}
111