Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-80909

can't build 5.15 with -Werror for iOS with Xcode 11.2.1 due to OpenGL deprecation

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.14
    • 5.14, 5.15
    • GUI: OpenGL
    • None
    • iOS/tvOS/watchOS

    Description

      Configuring with -no-warnings-are-errors doesn't seem to avoid this, but the warning comes with a suggestion "Define GLES_SILENCE_DEPRECATION to silence these warnings". Perhaps we need to do that, until we can get 5.15 to avoid depending on OpenGL at all, and use only Metal? That's not a configuration option at all yet.

      $ ../qt5/configure -xplatform macx-ios-clang -developer-build -opensource -confirm-license -nomake examples -nomake tests -no-warnings-are-errors
      ....
      $ make
      ....
      /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O3 -fPIC -std=c++1z -fapplication-extension  -arch arm64  -arch x86_64 -Xarch_arm64 -miphoneos-version-min=12.0 -Xarch_arm64 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk -Xarch_x86_64 -mios-simulator-version-min=12.0 -Xarch_x86_64 -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.2.sdk -fobjc-nonfragile-abi -fobjc-legacy-dispatch -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -fembed-bitcode -Wall -Wextra -Winconsistent-missing-override -Wobjc-interface-ivars -Wobjc-method-access -Wobjc-multiple-method-names -Werror=unguarded-availability -Werror=unguarded-availability-new -Werror=unsupported-availability-guard -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DQT_COMPILER_SUPPORTS_SSE2 -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_GUI_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -Wall -Wextra -Werror -Woverloaded-virtual -Wshadow -Wundef -Wfloat-equal -Wnon-virtual-dtor -Wpointer-arith -Wformat-security -Wno-long-long -Wno-variadic-macros -pedantic-errors -Wchar-subscripts -Wold-style-cast -Wcast-align -I/Users/rutledge/dev/qt5/qtbase/src/gui -I. -I/Users/rutledge/dev/qt5/qtbase/mkspecs/common/uikit -I/Users/rutledge/dev/qt5/qtbase/src/3rdparty/md4c -I/Users/rutledge/dev/qt5/qtbase/src/3rdparty/VulkanMemoryAllocator -I../../include -I../../include/QtGui -I../../include/QtGui/5.15.0 -I../../include/QtGui/5.15.0/QtGui -I.tracegen/release -I../../include/QtCore/5.15.0 -I../../include/QtCore/5.15.0/QtCore -I../../include/QtCore -I.moc/release -I/Users/rutledge/dev/qt5/qtbase/src/3rdparty/libpng -I/Users/rutledge/dev/qt5/qtbase/src/3rdparty/harfbuzz-ng/include -I/Users/rutledge/dev/qt5/qtbase/mkspecs/macx-ios-clang -DQT_NO_CAST_TO_ASCII=1 -DQT_NO_CAST_FROM_ASCII=1 -UQT_RESTRICTED_CAST_FROM_ASCII -DQT_STRICT_ITERATORS -DQT_NO_URL_CAST_FROM_STRING=1 -DQT_NO_CAST_FROM_BYTEARRAY=1 -DQT_NO_KEYWORDS=1 -DQT_USE_QSTRINGBUILDER -DQT_USE_FAST_OPERATOR_PLUS -Dsignals=int -Dslots=int -Demit=public: -Dforeach=public: -Dforever=public: -xc++ /Users/rutledge/dev/qt5/qtbase/src/gui/painting/qbrush.h -o .obj/release/header_qbrush.o
      /Users/rutledge/dev/qt5/qtbase/src/gui/opengl/qopenglfunctions_es2.h:219:7: error: 'glActiveTexture' is deprecated: first deprecated in iOS 12.0 - OpenGLES API deprecated.
            (Define GLES_SILENCE_DEPRECATION to silence these warnings) [-Werror,-Wdeprecated-declarations]
          ::glActiveTexture(texture);
            ^
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES3/gl.h:785:35: note: 'glActiveTexture' has been
            explicitly marked deprecated here
      GL_API void           GL_APIENTRY glActiveTexture (GLenum texture) OPENGLES_DEPRECATED(ios(3.0, 12.0), tvos(9.0, 12.0));
                                        ^
      /Users/rutledge/dev/qt5/qtbase/src/gui/opengl/qopenglfunctions_es2.h:224:7: error: 'glAttachShader' is deprecated: first deprecated in iOS 12.0 - OpenGLES API deprecated.
            (Define GLES_SILENCE_DEPRECATION to silence these warnings) [-Werror,-Wdeprecated-declarations]
          ::glAttachShader(program, shader);
            ^
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES3/gl.h:786:35: note: 'glAttachShader' has been
            explicitly marked deprecated here
      GL_API void           GL_APIENTRY glAttachShader (GLuint program, GLuint shader)   OPENGLES_DEPRECATED(ios(3.0, 12.0), tvos(9.0, 12.0));
                                        ^
      /Users/rutledge/dev/qt5/qtbase/src/gui/opengl/qopenglfunctions_es2.h:229:7: error: 'glBindAttribLocation' is deprecated: first deprecated in iOS 12.0 - OpenGLES API deprecated.
            (Define GLES_SILENCE_DEPRECATION to silence these warnings) [-Werror,-Wdeprecated-declarations]
          ::glBindAttribLocation(program, index, name);
            ^
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES3/gl.h:787:35: note: 'glBindAttribLocation' has been
            explicitly marked deprecated here
      GL_API void           GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name)   OPENGLES_DEPRECATED(ios(3.0, 12.0), tvos(9.0, 12.0));
                                        ^
      /Users/rutledge/dev/qt5/qtbase/src/gui/opengl/qopenglfunctions_es2.h:234:7: error: 'glBindBuffer' is deprecated: first deprecated in iOS 12.0 - OpenGLES API deprecated.
            (Define GLES_SILENCE_DEPRECATION to silence these warnings) [-Werror,-Wdeprecated-declarations]
          ::glBindBuffer(target, buffer);
            ^
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES3/gl.h:788:35: note: 'glBindBuffer' has been
            explicitly marked deprecated here
      GL_API void           GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer) OPENGLES_DEPRECATED(ios(3.0, 12.0), tvos(9.0, 12.0));
                                        ^
      /Users/rutledge/dev/qt5/qtbase/src/gui/opengl/qopenglfunctions_es2.h:239:7: error: 'glBindFramebuffer' is deprecated: first deprecated in iOS 12.0 - OpenGLES API deprecated.
            (Define GLES_SILENCE_DEPRECATION to silence these warnings) [-Werror,-Wdeprecated-declarations]
          ::glBindFramebuffer(target, framebuffer);
            ^
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES3/gl.h:789:35: note: 'glBindFramebuffer' has been
            explicitly marked deprecated here
      GL_API void           GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer)   OPENGLES_DEPRECATED(ios(3.0, 12.0), tvos(9.0, 12.0));
                                        ^
      /Users/rutledge/dev/qt5/qtbase/src/gui/opengl/qopenglfunctions_es2.h:244:7: error: 'glBindRenderbuffer' is deprecated: first deprecated in iOS 12.0 - OpenGLES API deprecated.
            (Define GLES_SILENCE_DEPRECATION to silence these warnings) [-Werror,-Wdeprecated-declarations]
          ::glBindRenderbuffer(target, renderbuffer);
            ^
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES3/gl.h:790:35: note: 'glBindRenderbuffer' has been
            explicitly marked deprecated here
      GL_API void           GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer)   OPENGLES_DEPRECATED(ios(3.0, 12.0), tvos(9.0, 12.0));
                                        ^
      /Users/rutledge/dev/qt5/qtbase/src/gui/opengl/qopenglfunctions_es2.h:249:7: error: 'glBindTexture' is deprecated: first deprecated in iOS 12.0 - OpenGLES API deprecated.
            (Define GLES_SILENCE_DEPRECATION to silence these warnings) [-Werror,-Wdeprecated-declarations]
          ::glBindTexture(target, texture);
            ^
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES3/gl.h:791:35: note: 'glBindTexture' has been
            explicitly marked deprecated here
      GL_API void           GL_APIENTRY glBindTexture (GLenum target, GLuint texture) OPENGLES_DEPRECATED(ios(3.0, 12.0), tvos(9.0, 12.0));
                                        ^
      /Users/rutledge/dev/qt5/qtbase/src/gui/opengl/qopenglfunctions_es2.h:254:7: error: 'glBlendColor' is deprecated: first deprecated in iOS 12.0 - OpenGLES API deprecated.
            (Define GLES_SILENCE_DEPRECATION to silence these warnings) [-Werror,-Wdeprecated-declarations]
          ::glBlendColor(red, green, blue, alpha);
            ^
      /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/System/Library/Frameworks/OpenGLES.framework/Headers/ES3/gl.h:792:35: note: 'glBlendColor' has been
            explicitly marked deprecated here
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            vestbo Tor Arne Vestbø
            srutledg Shawn Rutledge
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes