From 4269f9b3db3cdcb0e7bccf12161a1426cd6654b7 Mon Sep 17 00:00:00 2001
From: Andras Becsi <andras.becsi@digia.com>
Date: Mon, 25 Nov 2013 15:04:33 +0100
Subject: [PATCH] Fix the build with Qt 5.1

We are still able to build with Qt 5.1 if we disable
the hardware acceleration codepaths.

Change-Id: Ic748dac0a7f25bbd79f2f711a18431872cebd917
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
---
 examples/quick/quicknanobrowser/main.cpp       | 2 ++
 lib/content_browser_client_qt.cpp              | 4 ++++
 lib/quick/plugin/experimental/experimental.pro | 2 ++
 tests/auto/quick/quick.pro                     | 3 ++-
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/examples/quick/quicknanobrowser/main.cpp b/examples/quick/quicknanobrowser/main.cpp
index 6c2f91de6..0f0278c22 100644
--- a/examples/quick/quicknanobrowser/main.cpp
+++ b/examples/quick/quicknanobrowser/main.cpp
@@ -53,12 +53,14 @@ int main(int argc, char **argv)
 {
     Application app(argc, argv);
 
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0))
     // This is currently needed by all QtWebEngine application using the HW accelerated QQuickWebView.
     // It enables sharing between the QOpenGLContext of all QQuickWindows of the application.
     // We have to do so until we expose a public API for it, or chose enable it by default in Qt 5.3.0.
     QOpenGLContext shareContext;
     shareContext.create();
     QSGContext::setSharedOpenGLContext(&shareContext);
+#endif
 
     ApplicationEngine appEngine;
 
diff --git a/lib/content_browser_client_qt.cpp b/lib/content_browser_client_qt.cpp
index 68f0523cd..9bc9bfe5e 100644
--- a/lib/content_browser_client_qt.cpp
+++ b/lib/content_browser_client_qt.cpp
@@ -59,7 +59,9 @@
 #include "web_contents_view_qt.h"
 
 #include <QGuiApplication>
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0))
 #include <QtQuick/private/qsgcontext_p.h>
+#endif
 #include <qpa/qplatformnativeinterface.h>
 
 namespace {
@@ -254,10 +256,12 @@ private:
 
 void ShareGroupQtQuick::AboutToAddFirstContext()
 {
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0))
     // This currently has to be setup by ::main in all applications using QQuickWebEngineView with delegated rendering.
     QOpenGLContext *shareContext = QSGContext::sharedOpenGLContext();
     Q_ASSERT(shareContext);
     m_shareContextQtQuick = make_scoped_refptr(new QtShareGLContext(shareContext));
+#endif
 }
 
 content::WebContentsViewPort* ContentBrowserClientQt::OverrideCreateWebContentsView(content::WebContents* web_contents,
diff --git a/lib/quick/plugin/experimental/experimental.pro b/lib/quick/plugin/experimental/experimental.pro
index 7ccfdaa76..ad2e0b8a3 100644
--- a/lib/quick/plugin/experimental/experimental.pro
+++ b/lib/quick/plugin/experimental/experimental.pro
@@ -6,6 +6,8 @@ IMPORT_VERSION = 1.0
 QT += webengine qml quick
 QT_PRIVATE += webengine-private qml-private quick-private gui-private core-private
 
+qtHaveModule(v8): QT_PRIVATE += v8-private
+
 INCLUDEPATH += $$QTWEBENGINE_ROOT/lib $$QTWEBENGINE_ROOT/lib/quick
 
 SOURCES = plugin.cpp
diff --git a/tests/auto/quick/quick.pro b/tests/auto/quick/quick.pro
index 96e12c32f..51d6454b9 100644
--- a/tests/auto/quick/quick.pro
+++ b/tests/auto/quick/quick.pro
@@ -1,5 +1,6 @@
 TEMPLATE = subdirs
 
 SUBDIRS += \
-    qquickwebviewgraphics/qquickwebviewgraphics.pro \
     qquickwebviewgraphics/qquickwebviewgraphics_software.pro \
+
+equals(QT_MAJOR_VERSION, 5):greaterThan(QT_MINOR_VERSION, 1): SUBDIRS += qquickwebviewgraphics/qquickwebviewgraphics.pro
-- 
GitLab