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