Fixes build with libglvnd[-X]. https://github.com/qt/qtbase/commit/929d9a4ca5c9eb0a590479182471d0bbc81589aa From: Yaroslav Isakov Date: Sat, 8 Jul 2023 22:09:40 +0200 Subject: [PATCH] Allow OpenGL to be found on X11-less Linux systems (using libOpenGL) Cmake supports finding OpenGL, even if there is no GLX (for glvnd) or old-style libGL. This change keeps old behavior, but in case, if X11-related OpenGL libraries cannot be found on Linux, it adds logic to check for (and link with) libOpenGL, if it is present. --- a/cmake/FindWrapOpenGL.cmake +++ b/cmake/FindWrapOpenGL.cmake @@ -47,4 +47,14 @@ target_link_libraries(WrapOpenGL::WrapOpenGL INTERFACE OpenGL::GL) endif() +elseif(UNIX AND NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "Integrity") + # Requesting only the OpenGL component ensures CMake does not mark the package as + # not found if neither GLX nor libGL are available. This allows finding OpenGL + # on an X11-less Linux system. + find_package(OpenGL ${WrapOpenGL_FIND_VERSION} COMPONENTS OpenGL) + if (OpenGL_FOUND) + set(WrapOpenGL_FOUND ON) + add_library(WrapOpenGL::WrapOpenGL INTERFACE IMPORTED) + target_link_libraries(WrapOpenGL::WrapOpenGL INTERFACE OpenGL::OpenGL) + endif() endif()