+++ /dev/null
-From 0511fc56e7017209ad18d16551ccaad05de9486c Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Mon, 8 May 2017 23:12:49 +0200
-Subject: [PATCH] Make EGL support optional
-
-It is perfectly possible to build Mesa3D with just OpenGL support, and
-use with GLX in X.org, without having EGL/OpenGLES support.
-
-However, libepoxy currently unconditionally requires EGL support in its
-configure.ac, which causes a build failure when Mesa3D only provides
-full OpenGL support:
-
-checking for EGL... no
-configure: error: Package requirements (egl) were not met:
-
-Package egl was not found in the pkg-config search path.
-Perhaps you should add the directory containing `egl.pc'
-to the PKG_CONFIG_PATH environment variable
-Package 'egl', required by 'world', not found
-
-This commit fixes that by:
-
- - Adjusting the configure.ac to add a --{enable,disable}-egl option
- handled in the exact same way as --{enable,disable}-glx
-
- - Adjusting the meson build logic in the same way.
-
- - Adjusting src/dispatch_common.h to define PLATFORM_HAS_EGL correctly,
- which allows to not include any EGL related header file if EGL
- support is not enabled.
-
-Submitted-upstream: https://github.com/anholt/libepoxy/pull/123
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- configure.ac | 33 ++++++++++++++++++++++++++++-----
- meson.build | 21 ++++++++++++++++++---
- meson_options.txt | 5 +++++
- src/dispatch_common.h | 8 ++++----
- 4 files changed, 55 insertions(+), 12 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 31b0985..2dbecd9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -88,11 +88,35 @@ AS_CASE([$enable_glx],
- [AC_MSG_ERROR([Invalid value "$enable_glx" for option "--enable-glx"])]
- ])
-
--# The remaining platform specific API for GL/GLES are enabled
--# depending on the platform we're building for
-+AC_ARG_ENABLE([egl],
-+ [AC_HELP_STRING([--enable-egl=@<:@auto,yes,no@:>@], [Enable EGL support @<:@default=auto@:>@])],
-+ [enable_egl=$enableval],
-+ [enable_egl=auto])
-+
-+AS_CASE([$enable_egl],
-+ [auto], [
-+ AS_CASE([$host_os],
-+ [mingw*], [build_egl=no],
-+ [darwin*], [build_egl=no],
-+ [android*], [build_egl=no],
-+ [build_egl=yes])
-+ ],
-+
-+ [yes], [
-+ build_egl=yes
-+ ],
-+
-+ [no], [
-+ build_egl=no
-+ ],
-+
-+ [AC_MSG_ERROR([Invalid value "$enable_egl" for option "--enable-egl"])]
-+])
-+
-+# The remaining platform specific API are enabled depending on the
-+# platform we're building for
- AS_CASE([$host_os],
- [mingw*], [
-- build_egl=no
- build_wgl=yes
- has_znow=yes
- # On windows, the DLL has to have all of its functions
-@@ -108,7 +132,6 @@ AS_CASE([$host_os],
- ],
-
- [darwin*], [
-- build_egl=no
- build_wgl=no
- build_apple=yes
- has_znow=no
-@@ -116,7 +139,6 @@ AS_CASE([$host_os],
- ],
-
- [
-- build_egl=yes
- build_wgl=no
- has_znow=yes
- # On platforms with dlopen, we load everything dynamically and
-@@ -131,6 +153,7 @@ AM_CONDITIONAL(BUILD_EGL, test x$build_egl = xyes)
- if test x$build_egl = xyes; then
- PKG_CHECK_MODULES(EGL, [egl])
- AC_DEFINE([BUILD_EGL], [1], [build EGL tests])
-+ AC_DEFINE(ENABLE_EGL, [1], [Whether EGL support is enabled])
- fi
-
- AM_CONDITIONAL(BUILD_GLX, test x$build_glx = xyes)
-diff --git a/meson.build b/meson.build
-index 5435f45..226152e 100644
---- a/meson.build
-+++ b/meson.build
-@@ -51,26 +51,41 @@ elif enable_glx == 'no'
- build_glx = false
- endif
-
-+enable_egl = get_option('enable-egl')
-+if enable_egl == 'auto'
-+ if host_system == 'windows'
-+ build_egl = false
-+ elif host_system == 'darwin'
-+ build_egl = false
-+ elif host_system == 'android'
-+ build_egl = false
-+ else
-+ build_egl = true
-+ endif
-+elif enable_egl == 'yes'
-+ build_egl = true
-+elif enable_egl == 'no'
-+ build_egl = false
-+endif
-+
- # The remaining platform specific API for GL/GLES are enabled
- # depending on the platform we're building for
- if host_system == 'windows'
-- build_egl = false
- build_apple = false
- build_wgl = true
- has_znow = true
- elif host_system == 'darwin'
-- build_egl = false
- build_apple = true
- build_wgl = false
- has_znow = false
- else
-- build_egl = true
- build_apple = false
- build_wgl = false
- has_znow = true
- endif
-
- conf.set10('ENABLE_GLX', build_glx)
-+conf.set10('ENABLE_EGL', build_egl)
-
- # Compiler flags, taken from the Xorg macros
- if cc.get_id() == 'msvc'
-diff --git a/meson_options.txt b/meson_options.txt
-index 18932f5..244476a 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -6,3 +6,8 @@ option('enable-glx',
- choices: [ 'auto', 'yes', 'no' ],
- value: 'auto',
- description: 'Enable GLX support')
-+option('enable-egl',
-+ type: 'combo',
-+ choices: [ 'auto', 'yes', 'no' ],
-+ value: 'auto',
-+ description: 'Enable EGL support')
-diff --git a/src/dispatch_common.h b/src/dispatch_common.h
-index e3277f7..e16771f 100644
---- a/src/dispatch_common.h
-+++ b/src/dispatch_common.h
-@@ -24,19 +24,19 @@
- #include "config.h"
-
- #ifdef _WIN32
--#define PLATFORM_HAS_EGL 0
-+#define PLATFORM_HAS_EGL ENABLE_EGL
- #define PLATFORM_HAS_GLX ENABLE_GLX
- #define PLATFORM_HAS_WGL 1
- #elif defined(__APPLE__)
--#define PLATFORM_HAS_EGL 0
-+#define PLATFORM_HAS_EGL ENABLE_EGL
- #define PLATFORM_HAS_GLX ENABLE_GLX
- #define PLATFORM_HAS_WGL 0
- #elif defined(ANDROID)
--#define PLATFORM_HAS_EGL 1
-+#define PLATFORM_HAS_EGL ENABLE_EGL
- #define PLATFORM_HAS_GLX 0
- #define PLATFORM_HAS_WGL 0
- #else
--#define PLATFORM_HAS_EGL 1
-+#define PLATFORM_HAS_EGL ENABLE_EGL
- #define PLATFORM_HAS_GLX ENABLE_GLX
- #define PLATFORM_HAS_WGL 0
- #endif
---
-2.7.4
-