diff options
author | Remko Tronçon <git@el-tramo.be> | 2012-09-17 18:01:03 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2012-09-17 18:01:03 (GMT) |
commit | 3d6aa3b50090c19b50ae488494f1459bade88da3 (patch) | |
tree | 60db50a40f01d2dc4b48e5aee1011f0e72643c39 /BuildTools/SCons | |
parent | 7693734b10699b5fc4bfc3d7dc33128d558e202d (diff) | |
download | swift-3d6aa3b50090c19b50ae488494f1459bade88da3.zip swift-3d6aa3b50090c19b50ae488494f1459bade88da3.tar.bz2 |
Support for building swiften as a DLL
Added missing SWIFTEN_API declarations.
Changed test infrastructure to extend path before running
tests.
Diffstat (limited to 'BuildTools/SCons')
-rw-r--r-- | BuildTools/SCons/SConscript.boot | 1 | ||||
-rw-r--r-- | BuildTools/SCons/Tools/Test.py | 48 |
2 files changed, 31 insertions, 18 deletions
diff --git a/BuildTools/SCons/SConscript.boot b/BuildTools/SCons/SConscript.boot index b049f94..a5474bf 100644 --- a/BuildTools/SCons/SConscript.boot +++ b/BuildTools/SCons/SConscript.boot @@ -22,6 +22,7 @@ vars.Add(BoolVariable("assertions", "Compile with assertions", "yes")) vars.Add(BoolVariable("max_jobs", "Build with maximum number of parallel jobs", "no")) vars.Add(EnumVariable("target", "Choose a target platform for compilation", "native", ["native", "iphone-simulator", "iphone-device", "xcode"])) vars.Add(BoolVariable("swift_mobile", "Build mobile Swift", "no")) +vars.Add(BoolVariable("swiften_dll", "Build Swiften as dynamically linked library", "no")) if os.name != "nt" : vars.Add(BoolVariable("coverage", "Compile with coverage information", "no")) if os.name == "posix" : diff --git a/BuildTools/SCons/Tools/Test.py b/BuildTools/SCons/Tools/Test.py index 40eaeb1..c52f448 100644 --- a/BuildTools/SCons/Tools/Test.py +++ b/BuildTools/SCons/Tools/Test.py @@ -1,27 +1,39 @@ import SCons.Util, os def generate(env) : - def registerTest(env, target, type = "unit", is_checker = False) : - if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type : - cmd = target[0].abspath if SCons.Util.is_List(target) else target.abspath - params = "" + def registerTest(env, target, type = "unit", is_checker = False) : + if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type : + cmd = target[0].abspath if SCons.Util.is_List(target) else target.abspath + params = "" - # Special support for unittest checker - if is_checker and env.get("checker_report", False) : - params = " --xml > " + os.path.join(target[0].dir.path, "checker-report.xml") + # Special support for unittest checker + if is_checker and env.get("checker_report", False) : + params = " --xml > " + os.path.join(target[0].dir.path, "checker-report.xml") - ignore_prefix = "" - if env.get("TEST_IGNORE_RESULT", False) : - ignore_prefix = "-" - env.Command("**dummy**", target, - SCons.Action.Action(ignore_prefix + env.get("TEST_RUNNER", "") + cmd + " " + params, cmdstr = "$TESTCOMSTR")) + ignore_prefix = "" + if env.get("TEST_IGNORE_RESULT", False) : + ignore_prefix = "-" - def registerScriptTests(env, scripts, name, type) : - if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type : - pass + # Set environment variables for running the test + test_env = env.Clone() + for i in ["HOME", "USERPROFILE", "APPDATA"]: + if os.environ.get(i, "") : + test_env["ENV"][i] = os.environ[i] + if test_env["PLATFORM"] == "darwin" : + test_env["ENV"]["DYLD_FALLBACK_LIBRARY_PATH"] = ":".join(map(lambda x : str(x), test_env.get("LIBPATH", []))) + elif test_env["PLATFORM"] == "win32" : + test_env["ENV"]["PATH"] = ";".join(map(lambda x : str(x), test_env.get("LIBRUNPATH", []))) + ";" + test_env["ENV"]["PATH"] - env.AddMethod(registerTest, "Test") - env.AddMethod(registerScriptTests, "ScriptTests") + # Run the test + test_env.Command("**dummy**", target, + SCons.Action.Action(ignore_prefix + env.get("TEST_RUNNER", "") + cmd + " " + params, cmdstr = "$TESTCOMSTR")) + + def registerScriptTests(env, scripts, name, type) : + if env["TEST_TYPE"] == "all" or env["TEST_TYPE"] == type : + pass + + env.AddMethod(registerTest, "Test") + env.AddMethod(registerScriptTests, "ScriptTests") def exists(env) : - return True + return True |