blob: 3da361b3ff1ee0e3449f9298f434b74538a354a3 [file] [log] [blame]
SUMMARY = "Modern 3D graphics API with associated utility APIs"
DESCRIPTION = "Cogl is a small open source library for using 3D graphics \
hardware for rendering. The API departs from the flat state machine style of \
OpenGL and is designed to make it easy to write orthogonal components that \
can render without stepping on each others toes."
HOMEPAGE = "https://gitlab.gnome.org/GNOME/cogl"
LICENSE = "MIT"
inherit clutter features_check upstream-version-is-even gobject-introspection
# cogl-1.0 needs opengl to build
REQUIRED_DISTRO_FEATURES ?= "opengl"
DEPENDS = "glib-2.0 gdk-pixbuf"
PACKAGES =+ "${PN}-examples \
libcogl libcogl-gles2 libcogl-pango libcogl-path \
"
AUTOTOOLS_AUXDIR = "${S}/build"
# Extra DEPENDS for PACKAGECONFIG
EDEPENDS_GL = "virtual/libgl libdrm"
EDEPENDS_GLES2 = "virtual/libgles2"
EDEPENDS_KMS = "libdrm virtual/egl"
EDEPENDS_EGL = "virtual/egl"
EDEPENDS_X11 = "virtual/libx11 libxcomposite libxdamage libxfixes libxrandr"
EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland"
# Extra RDEPENDS for PACKAGECONFIG
# This has to be explictly listed, because cogl dlopens the backends
ERDEPENDS_GL = "libgl"
ERDEPENDS_GLES2 = "libgles2"
# GLESv1 is rarely tested, so disable it
EXTRA_OECONF += "--enable-examples-install \
--enable-debug \
--disable-gles1 \
--disable-cairo \
"
DEBUG_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized"
# OpenGL/GLX
PACKAGECONFIG[glx] = "--enable-gl --enable-glx,--disable-gl --disable-glx,${EDEPENDS_GL} ${EDEPENDS_X11},${ERDEPENDS_GL}"
# GLESv2
PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,${EDEPENDS_GLES2}, ${ERDEPENDS_GLES2}"
# EGL backends
PACKAGECONFIG[egl-kms] = "--enable-kms-egl-platform,--disable-kms-egl-platform,${EDEPENDS_KMS}"
PACKAGECONFIG[egl-null] = "--enable-null-egl-platform,--disable-null-egl-platform"
PACKAGECONFIG[egl-x11] = "--enable-xlib-egl-platform,--disable-xlib-egl-platform,${EDEPENDS_X11} ${EDEPENDS_EGL}"
PACKAGECONFIG[egl-wayland] = "--enable-wayland-egl-platform,--disable-wayland-egl-platform,${EDEPENDS_WAYLAND}"
# Wayland (server-side)
PACKAGECONFIG[wayland-server] = "--enable-wayland-egl-server,--disable-wayland-egl-server,${EDEPENDS_WAYLAND}"
# Support rendering text directly with Pango
PACKAGECONFIG[cogl-pango] = "--enable-cogl-pango,--disable-cogl-pango,pango"
# Respect the DISTRO_FEATURES to pull in GLX or Wayland as appropriate by
# default.
PACKAGECONFIG ??= "cogl-pango gles2 \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx egl-x11', '', d)} \
"
do_compile:prepend() {
export GIR_EXTRA_LIBS_PATH="${B}/cogl/.libs"
}
FILES:${PN} = ""
FILES:${PN}-examples = "${bindir}/* ${datadir}/cogl/examples-data/*"
FILES:libcogl = "${libdir}/libcogl${SOLIBS} ${libdir}/girepository-1.0/Cogl-*.typelib"
FILES:libcogl-gles2 = "${libdir}/libcogl-gles2${SOLIBS}"
FILES:libcogl-pango = "${libdir}/libcogl-pango${SOLIBS} ${libdir}/girepository-1.0/CoglPango*.typelib"
FILES:libcogl-path = "${libdir}/libcogl-path${SOLIBS}"
# For backwards compatibility after Debian-renaming
RPROVIDES:libcogl = "cogl-1.0"
RCONFLICTS:libcogl = "cogl-1.0"
RREPLACES:libcogl = "cogl-1.0"
RDEPENDS:${PN}-dev = "libcogl"
COMPATIBLE_HOST:armv4 = 'null'