blob: dc475908d000c3fd324fa6152fce18262b4f48d6 [file] [log] [blame]
Andrew Geisslereff27472021-10-29 15:35:00 -05001SUMMARY = "A C library for selecting an OpenGL API and window system at runtime"
2DESCRIPTION = "A cross-platform C library that allows one to defer selection \
3of an OpenGL API and window system until runtime. For example, on Linux, Waffle \
4enables an application to select X11/EGL with an OpenGL 3.3 core profile, \
5Wayland with OpenGL ES2, and other window system / API combinations."
6HOMEPAGE = "https://gitlab.freedesktop.org/mesa/waffle"
7BUGTRACKER = "https://gitlab.freedesktop.org/mesa/waffle"
8LICENSE = "BSD-2-Clause"
9LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 \
10 file://include/waffle-1/waffle.h;endline=24;md5=61dbf8697f61c78645e75a93c585b1bf"
11
Andrew Geissler595f6302022-01-24 19:11:47 +000012SRC_URI = "git://gitlab.freedesktop.org/mesa/waffle.git;protocol=https;branch=master \
Andrew Geisslereff27472021-10-29 15:35:00 -050013 file://0001-waffle-do-not-make-core-protocol-into-the-library.patch \
Andrew Geissler615f2f12022-07-15 14:00:58 -050014 file://0001-meson.build-request-native-wayland-scanner.patch \
Andrew Geisslereff27472021-10-29 15:35:00 -050015 "
16SRCREV = "905c6c10f2483adf0cbfa024e2d3c2ed541fb300"
17S = "${WORKDIR}/git"
18
19inherit meson features_check lib_package bash-completion pkgconfig
20
Andrew Geissler595f6302022-01-24 19:11:47 +000021DEPENDS:append = " python3 cmake-native"
Andrew Geisslereff27472021-10-29 15:35:00 -050022
23# This should be overridden per-machine to reflect the capabilities of the GL
24# stack.
25PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \
26 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
Patrick Williamsde0582f2022-04-08 10:23:27 -050027 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gbm surfaceless-egl', '', d)} \
28"
Andrew Geisslereff27472021-10-29 15:35:00 -050029
30# virtual/libgl requires opengl in DISTRO_FEATURES.
31REQUIRED_DISTRO_FEATURES += "${@bb.utils.contains('DEPENDS', 'virtual/${MLPREFIX}libgl', 'opengl', '', d)}"
32
33# I say virtual/libgl, actually wants gl.pc
34PACKAGECONFIG[glx] = "-Dglx=enabled,-Dglx=disabled,virtual/${MLPREFIX}libgl libx11"
35
Andrew Geissler9aee5002022-03-30 16:27:02 +000036# wants wayland-egl.pc, egl.pc, and the wayland
Andrew Geisslereff27472021-10-29 15:35:00 -050037# DISTRO_FEATURE.
Andrew Geissler9aee5002022-03-30 16:27:02 +000038PACKAGECONFIG[wayland] = "-Dwayland=enabled,-Dwayland=disabled,virtual/${MLPREFIX}egl wayland wayland-native wayland-protocols"
Andrew Geisslereff27472021-10-29 15:35:00 -050039
Andrew Geissler9aee5002022-03-30 16:27:02 +000040# wants gbm.pc egl.pc
41PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled,virtual/${MLPREFIX}egl virtual/${MLPREFIX}libgbm udev"
Andrew Geisslereff27472021-10-29 15:35:00 -050042
Andrew Geissler9aee5002022-03-30 16:27:02 +000043# wants egl.pc
44PACKAGECONFIG[x11-egl] = "-Dx11_egl=enabled,-Dx11_egl=disabled,virtual/${MLPREFIX}egl libxcb"
45PACKAGECONFIG[surfaceless-egl] = "-Dsurfaceless_egl=enabled,-Dsurfaceless_egl=disabled,virtual/${MLPREFIX}egl"
Andrew Geisslereff27472021-10-29 15:35:00 -050046
47# TODO: optionally build manpages and examples
48
49do_install:append() {
50 sed -i -e "s,${WORKDIR},,g" ${D}/${libdir}/cmake/Waffle/WaffleConfig.cmake
51}