From 6e50bd41dc3f11815a40dfef500dc0d61ea5d737 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Tue, 1 Dec 2009 19:03:46 +0100
Subject: Override SConscript() with our own, test-aware implementation.


diff --git a/QA/UnitTest/SConscript b/QA/UnitTest/SConscript
index 2fd7ce0..1cd92a3 100644
--- a/QA/UnitTest/SConscript
+++ b/QA/UnitTest/SConscript
@@ -2,26 +2,25 @@ import os
 
 Import("env")
 
-if env["TEST"] :
-	myenv = env.Clone()
-	myenv.MergeFlags(env["CHECKER_FLAGS"])
-	myenv.MergeFlags(env["SLIMBER_FLAGS"])
-	myenv.MergeFlags(env["SWIFT_CONTROLLERS_FLAGS"])
-	myenv.MergeFlags(env["SWIFTOOLS_FLAGS"])
-	myenv.MergeFlags(env["SWIFTEN_FLAGS"])
-	myenv.MergeFlags(env["CPPUNIT_FLAGS"])
-	myenv.MergeFlags(env["LIBIDN_FLAGS"])
-	myenv.MergeFlags(env["BOOST_FLAGS"])
-	myenv.MergeFlags(env["SQLITE_FLAGS"])
-	myenv.MergeFlags(env.get("LIBXML_FLAGS", ""))
-	myenv.MergeFlags(env.get("EXPAT_FLAGS", ""))
-	myenv.MergeFlags(env["ZLIB_FLAGS"])
-	if env.get("HAVE_LIBXML") :
-		myenv.Append(CPPDEFINES = ["HAVE_LIBXML"])
-	if env.get("HAVE_EXPAT") :
-		myenv.Append(CPPDEFINES = ["HAVE_EXPAT"])
-	checker = myenv.Program("checker", env["UNITTEST_SOURCES"])
-	for i in ["HOME", "USERPROFILE", "APPDATA"]:
-		if os.environ.get(i, "") :
-			myenv["ENV"][i] = os.environ[i]
-	myenv.Test(checker)
+myenv = env.Clone()
+myenv.MergeFlags(env["CHECKER_FLAGS"])
+myenv.MergeFlags(env["SLIMBER_FLAGS"])
+myenv.MergeFlags(env["SWIFT_CONTROLLERS_FLAGS"])
+myenv.MergeFlags(env["SWIFTOOLS_FLAGS"])
+myenv.MergeFlags(env["SWIFTEN_FLAGS"])
+myenv.MergeFlags(env["CPPUNIT_FLAGS"])
+myenv.MergeFlags(env["LIBIDN_FLAGS"])
+myenv.MergeFlags(env["BOOST_FLAGS"])
+myenv.MergeFlags(env["SQLITE_FLAGS"])
+myenv.MergeFlags(env.get("LIBXML_FLAGS", ""))
+myenv.MergeFlags(env.get("EXPAT_FLAGS", ""))
+myenv.MergeFlags(env["ZLIB_FLAGS"])
+if env.get("HAVE_LIBXML") :
+  myenv.Append(CPPDEFINES = ["HAVE_LIBXML"])
+if env.get("HAVE_EXPAT") :
+  myenv.Append(CPPDEFINES = ["HAVE_EXPAT"])
+checker = myenv.Program("checker", env["UNITTEST_SOURCES"])
+for i in ["HOME", "USERPROFILE", "APPDATA"]:
+  if os.environ.get(i, "") :
+    myenv["ENV"][i] = os.environ[i]
+myenv.Test(checker)
diff --git a/SConstruct b/SConstruct
index 799929d..6cd55aa 100644
--- a/SConstruct
+++ b/SConstruct
@@ -47,6 +47,13 @@ if env["PLATFORM"] == "darwin" :
 if env["PLATFORM"] == "win32" :
 	env.Tool("WindowsBundle", toolpath = ["#/BuildTools/SCons/Tools"])
 
+# Override SConscript to handle tests
+oldSConscript = SConscript
+def SConscript(*arguments, **keywords) :
+  if not keywords.get("test_only", False) or env["TEST"] :
+    return apply(oldSConscript, arguments, keywords)
+  
+
 # Default compiler flags
 env["CCFLAGS"] = env.get("ccflags", [])
 env["LINKFLAGS"] = env.get("linkflags", [])
@@ -317,7 +324,7 @@ SConscript(dirs = [
 		"3rdParty/SQLite"])
 
 # Checker
-SConscript(dirs = ["QA/Checker"])
+SConscript(dirs = ["QA/Checker"], test_only = True)
 
 # Libraries
 SConscript(dirs = [
@@ -334,7 +341,7 @@ for dir in os.listdir(".") :
 		SConscript(sconscript)
 
 # Unit test runner
-SConscript(dirs = ["QA/UnitTest"])
+SConscript(dirs = ["QA/UnitTest"], test_only = True)
 
 ################################################################################
 # Print summary
diff --git a/Swiften/SConscript b/Swiften/SConscript
index 6c13edb..0009125 100644
--- a/Swiften/SConscript
+++ b/Swiften/SConscript
@@ -104,8 +104,10 @@ SConscript(dirs = [
 		"History",
 		"StreamStack",
 		"LinkLocal",
-		"QA",
 	])
+SConscript(test_only = True, dirs = [
+		"QA",
+  ])
 
 myenv.StaticLibrary("Swiften", sources + swiften_env["SWIFTEN_OBJECTS"])
 
-- 
cgit v0.10.2-6-g49f6