qt55.qtbase: fallback libGL path

If libGL is not found on the system library path, fall back to the
default Mesa driver.
This commit is contained in:
Thomas Tuegel 2015-12-19 12:15:33 -06:00
parent 081b1f1707
commit 9f62af0885
2 changed files with 8 additions and 4 deletions

View File

@ -90,7 +90,7 @@ stdenv.mkDerivation {
if [[ -n "$mesaSupported" ]]; then
substituteInPlace \
qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp \
--replace "@openglDriver@" "${mesa.driverLink}"
--replace "@mesa@" "${mesa}"
substituteInPlace qtbase/mkspecs/common/linux.conf --replace "@mesa@" "${mesa}"
fi
'';

View File

@ -2,12 +2,16 @@ Index: qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_in
===================================================================
--- qt-everywhere-opensource-src-5.5.1.orig/qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
+++ qt-everywhere-opensource-src-5.5.1/qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
@@ -563,7 +563,7 @@ void (*QGLXContext::getProcAddress(const
@@ -563,7 +563,12 @@ void (*QGLXContext::getProcAddress(const
{
extern const QString qt_gl_library_name();
// QLibrary lib(qt_gl_library_name());
- QLibrary lib(QLatin1String("GL"));
+ QLibrary lib(QLatin1String("@openglDriver@/lib/libGL"));
+ // Check system library paths first
QLibrary lib(QLatin1String("GL"));
+ if (!lib.load()) {
+ // Fallback to Mesa driver
+ lib.setFileName(QLatin1String("@mesa@/lib/libGL"));
+ }
glXGetProcAddressARB = (qt_glXGetProcAddressARB) lib.resolve("glXGetProcAddressARB");
}
}