From: Lucas Stach <l.st...@pengutronix.de> Waffle is a cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime.
Signed-off-by: Lucas Stach <l.st...@pengutronix.de> [p.za...@pengutronix.de: added a patch to use EGL CFLAGS from pkgconfig] Signed-off-by: Philipp Zabel <p.za...@pengutronix.de> --- Changes since v1: - Added a patch to use EGL CFLAGS from pkgconfig, to fix builds on EGL/GBM platforms without X11 headers. --- ...egl-use-EGL-CFLAGS-reported-by-pkg-config.patch | 47 ++++++++++++++++ patches/waffle-1.5.2/series | 1 + rules/waffle.in | 37 +++++++++++++ rules/waffle.make | 62 ++++++++++++++++++++++ 4 files changed, 147 insertions(+) create mode 100644 patches/waffle-1.5.2/0001-egl-use-EGL-CFLAGS-reported-by-pkg-config.patch create mode 100644 patches/waffle-1.5.2/series create mode 100644 rules/waffle.in create mode 100644 rules/waffle.make diff --git a/patches/waffle-1.5.2/0001-egl-use-EGL-CFLAGS-reported-by-pkg-config.patch b/patches/waffle-1.5.2/0001-egl-use-EGL-CFLAGS-reported-by-pkg-config.patch new file mode 100644 index 000000000..30759ce4e --- /dev/null +++ b/patches/waffle-1.5.2/0001-egl-use-EGL-CFLAGS-reported-by-pkg-config.patch @@ -0,0 +1,47 @@ +From 359902f8f043e7a7d782d1df3d5d74c3b2a3bd04 Mon Sep 17 00:00:00 2001 +From: Philipp Zabel <p.za...@pengutronix.de> +Date: Thu, 8 Jun 2017 13:52:02 +0200 +Subject: [PATCH] egl: use EGL CFLAGS reported by pkg-config + +Some platforms need -DMESA_EGL_NO_X11_HEADERS set, as indicated by the +Cflags: field in egl.pc. pkg-config provides this information, pass it +to the compiler. + +Signed-off-by: Philipp Zabel <p.za...@pengutronix.de> +--- + src/waffle/CMakeLists.txt | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/waffle/CMakeLists.txt b/src/waffle/CMakeLists.txt +index d76e029..954774c 100644 +--- a/src/waffle/CMakeLists.txt ++++ b/src/waffle/CMakeLists.txt +@@ -94,6 +94,9 @@ if(waffle_on_mac) + endif() + + if(waffle_has_egl) ++ list(APPEND waffle_cflags ++ ${egl_CFLAGS} ++ ) + list(APPEND waffle_sources + egl/wegl_config.c + egl/wegl_context.c +@@ -227,6 +230,7 @@ target_link_libraries(${waffle_libname} ${waffle_libdeps}) + + set_target_properties(${waffle_libname} + PROPERTIES ++ COMPILE_FLAGS ${waffle_cflags} + SOVERSION ${waffle_soversion} + VERSION ${waffle_soversion}.${waffle_minor_version}.${waffle_patch_version} + ) +@@ -266,6 +270,7 @@ target_link_libraries(waffle_static ${waffle_libdeps}) + + set_target_properties(waffle_static + PROPERTIES ++ COMPILE_FLAGS ${waffle_cflags} + OUTPUT_NAME "waffle-static-${waffle_major_version}" + ) + +-- +2.11.0 + diff --git a/patches/waffle-1.5.2/series b/patches/waffle-1.5.2/series new file mode 100644 index 000000000..6b680e422 --- /dev/null +++ b/patches/waffle-1.5.2/series @@ -0,0 +1 @@ +0001-egl-use-EGL-CFLAGS-reported-by-pkg-config.patch diff --git a/rules/waffle.in b/rules/waffle.in new file mode 100644 index 000000000..a6c8bdf80 --- /dev/null +++ b/rules/waffle.in @@ -0,0 +1,37 @@ +## SECTION=multimedia_libs + +menuconfig WAFFLE + tristate + prompt "waffle" + select HOST_CMAKE + select MESALIB + select LIBXCB if WAFFLE_GLX || WAFFLE_X11_EGL + select MESALIB_GLX if WAFFLE_GLX + select WAYLAND if WAFFLE_WAYLAND + select MESALIB_EGL if WAFFLE_WAYLAND || WAFFLE_X11_EGL || WAFFLE_X11_EGL + select UDEV_LIBUDEV if WAFFLE_GBM + select MESALIB_GBM if WAFFLE_GBM + help + Waffle is a cross-platform C library that allows one to defer + selection of an OpenGL API and window system until runtime. + +if WAFFLE + +config WAFFLE_GLX + bool + prompt "GLX support" + +config WAFFLE_WAYLAND + bool + prompt "Wayland support" + +config WAFFLE_X11_EGL + bool + prompt "X11 EGL support" + +config WAFFLE_GBM + bool + prompt "GBM support" + +endif + diff --git a/rules/waffle.make b/rules/waffle.make new file mode 100644 index 000000000..a229db028 --- /dev/null +++ b/rules/waffle.make @@ -0,0 +1,62 @@ +# -*-makefile-*- +# +# Copyright (C) 2016 by Lucas Stach <l.st...@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_WAFFLE) += waffle + +# +# Paths and names +# +WAFFLE_VERSION := 1.5.2 +WAFFLE_MD5 := c669c91bf2f7e13a5d781c3dbb30fd8c +WAFFLE := waffle-$(WAFFLE_VERSION) +WAFFLE_SUFFIX := tar.xz +WAFFLE_URL := http://www.waffle-gl.org/files/release/$(WAFFLE)/$(WAFFLE).$(WAFFLE_SUFFIX) +WAFFLE_SOURCE := $(SRCDIR)/$(WAFFLE).$(WAFFLE_SUFFIX) +WAFFLE_DIR := $(BUILDDIR)/$(WAFFLE) +WAFFLE_LICENSE := BSD-2-Clause +WAFFLE_LICENSE_FILES := \ + file://LICENSE.txt;md5=4c5154407c2490750dd461c50ad94797 + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +WAFFLE_CONF_TOOL := cmake +WAFFLE_CONF_OPT := \ + $(CROSS_CMAKE_USR) \ + -Dwaffle_has_glx=$(call ptx/ifdef,PTXCONF_WAFFLE_GLX,1,0) \ + -Dwaffle_has_wayland=$(call ptx/ifdef,PTXCONF_WAFFLE_WAYLAND,1,0) \ + -Dwaffle_has_x11_egl=$(call ptx/ifdef,PTXCONF_WAFFLE_X11_EGL,1,0) \ + -Dwaffle_has_gbm=$(call ptx/ifdef,PTXCONF_WAFFLE_GBM,1,0) + + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/waffle.targetinstall: + @$(call targetinfo) + + @$(call install_init, waffle) + @$(call install_fixup, waffle,PRIORITY,optional) + @$(call install_fixup, waffle,SECTION,base) + @$(call install_fixup, waffle,AUTHOR,"Lucas Stach <l.st...@pengutronix.de>") + @$(call install_fixup, waffle,DESCRIPTION,missing) + + @$(call install_lib, waffle, 0, 0, 0644, libwaffle-1) + + @$(call install_finish, waffle) + + @$(call touch) + +# vim: syntax=make -- 2.11.0 _______________________________________________ ptxdist mailing list ptxdist@pengutronix.de