From d1ddc17b0fcb9ce809a81ddd71d0bc864b2738c9 Mon Sep 17 00:00:00 2001
From: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Date: Mon, 11 Aug 2014 14:33:42 +0200
Subject: [PATCH] Opt-out of the build on platforms where we won't build
 successfully

To allow the qt5.git integration, allow the build to succeed if the
repository is checked out on a platform that we don't maintain.

This is the initial list of platforms that we want the integration
to succeed and we can add new ones once we start maintaining them.

Change-Id: Idce2a84eb8d5b1ef7f14d399fe013f666b479108
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
---
 examples/examples.pro                      |  4 ++-
 src/src.pro                                | 42 ++++++++++++----------
 tests/tests.pro                            |  4 ++-
 tools/qmake/mkspecs/features/functions.prf |  5 +++
 4 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/examples/examples.pro b/examples/examples.pro
index 45621622c..3d6872d55 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -1,6 +1,8 @@
 TEMPLATE=subdirs
 
-SUBDIRS += webengine/quicknanobrowser
+qtHaveModule(webengine) {
+    SUBDIRS += webengine/quicknanobrowser
+}
 
 qtHaveModule(webenginewidgets) {
     SUBDIRS += \
diff --git a/src/src.pro b/src/src.pro
index ed402c582..5b31a22f8 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,26 +1,30 @@
 TEMPLATE = subdirs
 
-process.depends = core
-webengine.depends = core
-webenginewidgets.depends = core webengine
-webengine_plugin.subdir = webengine/plugin
-webengine_plugin.target = sub-webengine-plugin
-webengine_plugin.depends = webengine
-webengine_experimental_plugin.subdir = webengine/plugin/experimental
-webengine_experimental_plugin.target = sub-webengine-experimental-plugin
-webengine_experimental_plugin.depends = webengine
+isPlatformSupported() {
+    process.depends = core
+    webengine.depends = core
+    webenginewidgets.depends = core webengine
+    webengine_plugin.subdir = webengine/plugin
+    webengine_plugin.target = sub-webengine-plugin
+    webengine_plugin.depends = webengine
+    webengine_experimental_plugin.subdir = webengine/plugin/experimental
+    webengine_experimental_plugin.target = sub-webengine-experimental-plugin
+    webengine_experimental_plugin.depends = webengine
 
 
-SUBDIRS += core \
-           process \
-           webengine \
-           webengine_plugin \
-           webengine_experimental_plugin
+    SUBDIRS += core \
+               process \
+               webengine \
+               webengine_plugin \
+               webengine_experimental_plugin
 
-# FIXME: We probably want a bit more control over config options to tweak what to build/ship or not.
-# Another example of where this could be necessary is to make it easy to build proprietery codecs support.
-!contains(WEBENGINE_CONFIG, no_ui_delegates): SUBDIRS += webengine/ui
+    # FIXME: We probably want a bit more control over config options to tweak what to build/ship or not.
+    # Another example of where this could be necessary is to make it easy to build proprietery codecs support.
+    !contains(WEBENGINE_CONFIG, no_ui_delegates): SUBDIRS += webengine/ui
 
-qtHaveModule(widgets) {
-    SUBDIRS += webenginewidgets
+    qtHaveModule(widgets) {
+        SUBDIRS += webenginewidgets
+    }
+} else {
+    warning("QtWebEngine is not maintained on this platform and is therefore disabled.")
 }
diff --git a/tests/tests.pro b/tests/tests.pro
index 2144a15e3..f6dec7a55 100644
--- a/tests/tests.pro
+++ b/tests/tests.pro
@@ -1,3 +1,5 @@
 TEMPLATE = subdirs
-SUBDIRS +=  auto quicktestbrowser
 
+isPlatformSupported() {
+    SUBDIRS +=  auto quicktestbrowser
+}
diff --git a/tools/qmake/mkspecs/features/functions.prf b/tools/qmake/mkspecs/features/functions.prf
index 4dcd8ed18..a4dbb6732 100644
--- a/tools/qmake/mkspecs/features/functions.prf
+++ b/tools/qmake/mkspecs/features/functions.prf
@@ -1,3 +1,8 @@
+defineTest(isPlatformSupported) {
+  linux-g++|win32-msvc2013|macx-clang: return(true)
+  return(false)
+}
+
 # Map to the correct target type for gyp
 defineReplace(toGypTargetType) {
   equals(TEMPLATE, "app"):return("executable")
-- 
GitLab