blob: b45cc06e8e89c92d1468ad38485cb85b73b62cde [file] [log] [blame]
From 47946855f19cc7d082fd59e090bb83f5d3930871 Mon Sep 17 00:00:00 2001
From: Chia-I Wu <olvaffe@gmail.com>
Date: Tue, 20 Jul 2021 17:52:47 -0700
Subject: [PATCH 2/2] meson: allow egl_native_platform to be specified
After commit f8dc22bf61c, it was no longer possible to have explicitly
enabled platforms with surfaceless being the EGL native platform. This
fixes that by adding -Degl-native-platform.
Fixes: f8dc22bf61c ("meson: drop deprecated EGL platform build options")
Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11992>
---
meson.build | 26 ++++++++++++++++++++------
meson_options.txt | 10 ++++++++++
2 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/meson.build b/meson.build
index 2c3cbdd9b17..9c968a3bcbb 100644
--- a/meson.build
+++ b/meson.build
@@ -358,12 +358,6 @@ with_platform_wayland = _platforms.contains('wayland')
with_platform_haiku = _platforms.contains('haiku')
with_platform_windows = _platforms.contains('windows')
-if _platforms.length() != 0
- egl_native_platform = _platforms[0]
-else
- egl_native_platform = 'surfaceless'
-endif
-
with_glx = get_option('glx')
if with_glx == 'auto'
if with_platform_android
@@ -458,6 +452,26 @@ else
with_egl = false
endif
+if with_egl
+ _platforms += 'surfaceless'
+ if with_gbm and not with_platform_android
+ _platforms += 'drm'
+ endif
+endif
+
+egl_native_platform = get_option('egl-native-platform')
+if egl_native_platform.contains('auto')
+ if _platforms.length() != 0
+ egl_native_platform = _platforms[0]
+ else
+ egl_native_platform = 'surfaceless'
+ endif
+endif
+
+if with_egl and not _platforms.contains(egl_native_platform)
+ error('-Degl-native-platform does not specify an enabled platform')
+endif
+
# Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
use_elf_tls = false
if (not ['freebsd', 'openbsd', 'haiku'].contains(host_machine.system()) and
diff --git a/meson_options.txt b/meson_options.txt
index 2c11092eeb4..29c402c4844 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -27,6 +27,16 @@ option(
],
description : 'window systems to support. If this is set to `auto`, all platforms applicable will be enabled.'
)
+option(
+ 'egl-native-platform',
+ type : 'combo',
+ value : 'auto',
+ choices : [
+ 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
+ 'surfaceless', 'drm',
+ ],
+ description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY',
+)
option(
'android-stub',
type : 'boolean',
--
2.32.0.402.g57bb445576-goog