Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Rauch <christian.rauch>2022-06-23 19:51:12 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-06-28 17:54:45 +0300
commitbd6912930ff38d4f6deb23e4d5e8938cf210bf43 (patch)
tree07a511810b964eefac997b650cce6387566afb44 /CMakeLists.txt
parent614aa9d8ec7e3b6465b9e387da3f25f8639eec9e (diff)
Build: when using Wayland, always enable EGL and disable system GLEW
GLEW does not support GLX and EGL at the same time, and the distribution version is likely to have GLX. This also refactors the code so all OpenGL related CMake options are together. Differential Revision: https://developer.blender.org/D12034
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt40
1 files changed, 28 insertions, 12 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3c3127e0f64..7b7b7060638 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -263,19 +263,11 @@ if(WITH_GHOST_X11)
endif()
if(UNIX AND NOT APPLE)
- option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
- option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON)
option(WITH_SYSTEM_FREETYPE "Use the freetype library provided by the operating system" OFF)
+ option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF)
else()
- # not an option for other OS's
- set(WITH_SYSTEM_GLEW OFF)
- set(WITH_SYSTEM_GLES OFF)
set(WITH_SYSTEM_FREETYPE OFF)
-endif()
-
-
-if(UNIX AND NOT APPLE)
- option(WITH_SYSTEM_EIGEN3 "Use the systems Eigen3 library" OFF)
+ set(WITH_SYSTEM_EIGEN3 OFF)
endif()
@@ -526,16 +518,40 @@ endif()
# OpenGL
+# Experimental EGL option.
+option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, GLX or WGL)" OFF)
+mark_as_advanced(WITH_GL_EGL)
+
+if(WITH_GHOST_WAYLAND)
+ # Wayland can only use EGL to create OpenGL contexts, not GLX.
+ set(WITH_GL_EGL ON)
+endif()
+
+if(UNIX AND NOT APPLE)
+ if(WITH_GL_EGL)
+ # GLEW can only be built with either GLX or EGL support. Most binary distributions are
+ # built with GLX support and we have no automated way to detect this. So always build
+ # GLEW from source to be sure it has EGL support.
+ set(WITH_SYSTEM_GLEW OFF)
+ else()
+ option(WITH_SYSTEM_GLEW "Use GLEW OpenGL wrapper library provided by the operating system" OFF)
+ endif()
+
+ option(WITH_SYSTEM_GLES "Use OpenGL ES library provided by the operating system" ON)
+else()
+ # System GLEW and GLES not an option on other platforms.
+ set(WITH_SYSTEM_GLEW OFF)
+ set(WITH_SYSTEM_GLES OFF)
+endif()
+
option(WITH_OPENGL "When off limits visibility of the opengl headers to just bf_gpu and gawain (temporary option for development purposes)" ON)
option(WITH_GLEW_ES "Switches to experimental copy of GLEW that has support for OpenGL ES. (temporary option for development purposes)" OFF)
-option(WITH_GL_EGL "Use the EGL OpenGL system library instead of the platform specific OpenGL system library (CGL, glX, or WGL)" OFF)
option(WITH_GL_PROFILE_ES20 "Support using OpenGL ES 2.0. (through either EGL or the AGL/WGL/XGL 'es20' profile)" OFF)
option(WITH_GPU_SHADER_BUILDER "Shader builder is a developer option enabling linting on GLSL during compilation" OFF)
mark_as_advanced(
WITH_OPENGL
WITH_GLEW_ES
- WITH_GL_EGL
WITH_GL_PROFILE_ES20
WITH_GPU_SHADER_BUILDER
)