summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaroslav Isakov <yaroslav.isakov@gmail.com>2023-07-08 22:09:40 +0200
committerYaroslav Isakov <yaroslav.isakov@gmail.com>2023-07-12 11:25:23 +0200
commit929d9a4ca5c9eb0a590479182471d0bbc81589aa (patch)
treea9c8f9a3713de92d74ca46cf70468321e26d0f68
parent87bfd3308209c3f859d116c024de1d2c35bf18b3 (diff)
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. [ChangeLog][QtGui] Allow OpenGL to be found on X11-less Linux systems (using libOpenGL) Change-Id: Iccfeba83292a14081544c64ea8ce24fb52d1ee2f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--cmake/FindWrapOpenGL.cmake10
1 files changed, 10 insertions, 0 deletions
diff --git a/cmake/FindWrapOpenGL.cmake b/cmake/FindWrapOpenGL.cmake
index c4e0fe5d3e..3e6abaf4dd 100644
--- a/cmake/FindWrapOpenGL.cmake
+++ b/cmake/FindWrapOpenGL.cmake
@@ -46,6 +46,16 @@ if (OpenGL_FOUND)
else()
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()
include(FindPackageHandleStandardArgs)