From f5b5f35868b3f1fd93906d6458cca965f12c6a5f Mon Sep 17 00:00:00 2001
From: Tobias Markmann <tm@ayena.de>
Date: Thu, 10 Sep 2015 10:45:48 +0200
Subject: Do not require complete Qt installation when building Swiften

Previously, if a base installation of Qt was available but not
all Qt modules required by Swift are available Scons would fail
configuration. If a basic Qt installation is available SCons will
try to configure Swift even if you only want to build Swiften.

This commit changes the hard failure in Swift configuration to a
warning. This allows only Swiften to be build.

In addition, the warning now lists the Qt packages required by
Swift.

Test-Information:

Tested on Arch Linux.

Change-Id: I220ea61a7e4af849912e1fb1ae66cbecf5136d29

diff --git a/BuildTools/SCons/Tools/qt4.py b/BuildTools/SCons/Tools/qt4.py
index 6c54b1e..6d9285c 100644
--- a/BuildTools/SCons/Tools/qt4.py
+++ b/BuildTools/SCons/Tools/qt4.py
@@ -517,7 +517,7 @@ def enable_modules(self, modules, debug=False, crosscompiling=False, version='4'
 			ret = test_conf.TryAction('pkg-config --exists \'%s\'' % modules_str)[0]
 			if ret != 1:
 				test_conf.Finish()
-				raise Exception("Qt has not been found using pkg-config.")
+				raise Exception('Qt installation is missing packages. The following are required: %s' % modules_str)
 				return
 			test_conf.env.ParseConfig("pkg-config --cflags --libs " + modules_str)
 			self.AppendUnique(LIBS=test_conf.env["LIBS"], LIBPATH=test_conf.env["LIBPATH"], CPPPATH=test_conf.env["CPPPATH"])
diff --git a/Swift/SConscript b/Swift/SConscript
index 566019c..31b0b94 100644
--- a/Swift/SConscript
+++ b/Swift/SConscript
@@ -13,5 +13,9 @@ if env["SCONS_STAGE"] == "build" :
 		if "Swift" in env["PROJECTS"] :
 			print "Warning: Swift requires Qt. Not building the Swift Qt application."
 			env["PROJECTS"].remove("Swift")
-	elif not GetOption("help") and env["target"] == "native":
-		 SConscript("QtUI/SConscript")
+	elif not GetOption("help") and env["target"] == "native" and "Swift" in env["PROJECTS"] :
+		try :
+			SConscript("QtUI/SConscript")
+		except Exception as e:
+			print "Warning: %s" % str(e) 
+			env["PROJECTS"].remove("Swift")
-- 
cgit v0.10.2-6-g49f6