diff --git a/.pick_status.json b/.pick_status.json index ff36443a338..5b95c702771 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1138,7 +1138,7 @@ "description": "meson: allow egl_native_platform to be specified", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f8dc22bf61c1e6008f6954ffd25c1ee322f500c6" }, diff --git a/meson.build b/meson.build index 2ef0b88e6d3..9009048cbfb 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',