diff options
-rw-r--r-- | CMakeLists.txt | 40 | ||||
-rw-r--r-- | build_files/cmake/platform/platform_unix.cmake | 2 |
2 files changed, 28 insertions, 14 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 ) diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 875305b0564..2d003f276e8 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -622,8 +622,6 @@ if(WITH_GHOST_WAYLAND) pkg_check_modules(libdecor REQUIRED libdecor-0>=0.1) endif() - set(WITH_GL_EGL ON) - list(APPEND PLATFORM_LINKLIBS ${wayland-client_LINK_LIBRARIES} ${wayland-egl_LINK_LIBRARIES} |