diff --git a/configure.ac b/configure.ac index 31b0985b..2dbecd9c 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 5435f45d..226152e7 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 18932f50..244476a3 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 e3277f79..e16771fa 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