[Development] Qt5.8/Mac: finding the correct OpenGL libraries when pkg-config is also used
René J.V. Bertin
rjvbertin at gmail.com
Wed Jan 18 13:58:41 CET 2017
I'm starting a new thread for this, because it's a much bigger problem than the topic of the thread where I already posted this.
It seems the configure process picks up the X11 libGL when it's available and pkg-config is (has to be!) used to find intended dependencies.
I used to protect against that in the configure script (see the patch below), but the OpenGL detection logic has been moved from out of there, as a number of other things :-/
The patch disabled the pkgconfig check for OpenGL when building for Cocoa, but left it in when building for XCB.
IIUC the basic OpenGL test is now done in GtGui/configure.json . I can remove the pkgConfig "gl" test from that file and it seems this has the expected effect (rebuild has just started), but is there a way to do this conditionally?
Also, I had to clean the whole build directory and reconfigure from scratch to get this change to be taken into account. Is there a less brute way to reconfigure?
Thanks ... again. I hope the new configure system was worth it, for now I'm not seeing any of the benefits I understand it's supposed to have!
diff --git a/qtbase/configure b/qtbase/configure
index 0b8b417..91c6bc1 100755
@@ -5310,8 +5310,19 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then
# auto-detect OpenGL support (es2 = OpenGL ES 2.0 or higher)
+ if [ "$QT_QPA_DEFAULT_PLATFORM" = "cocoa" ] || [ "$QT_QPA_DEFAULT_PLATFORM" = "" -a "$XPLATFORM_MAC" = "yes" ]; then
+ # QT_QPA_DEFAULT_PLATFORM is either empty or set by the user, so we have to check
+ # both manually and automatically selected cocoa. It qpa=cocoa, we do NOT want to
+ # use pkg-config to find the OpenGL libraries because it's too likely to find
+ # OpenGL libraries that are not the system frameworks appropriate for cocoa mode.
+ compileTest unix/opengldesktop "OpenGL"
+ compileTestWithPkgConfig gl unix/opengldesktop "OpenGL" OPENGL
if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
- if compileTestWithPkgConfig gl unix/opengldesktop "OpenGL" OPENGL; then
+ if doOpenGLTest; then
elif compileTestWithPkgConfig glesv2 unix/opengles2 "OpenGL ES 2.0" OPENGL_ES2; then
@@ -5339,7 +5350,7 @@ elif [ "$CFG_OPENGL" = "es2" ]; then
elif [ "$CFG_OPENGL" = "desktop" ]; then
# Desktop OpenGL support
- compileTestWithPkgConfig gl unix/opengldesktop "OpenGL" OPENGL
if [ $? != "0" ]; then
echo "The OpenGL functionality test failed!"
echo " You might need to modify the include and library search paths by editing"
More information about the Development