summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-12-27 13:42:25 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-12-27 13:42:25 (GMT)
commitb01f65e011503a76c5f3ef6272f7ff77afb2bd7e (patch)
treefe6f032668ca88a538cefc0ed93b5f62715f131f
parentc060049e759571ae02a3a970c6a3088e099e5c9f (diff)
downloadswift-contrib-b01f65e011503a76c5f3ef6272f7ff77afb2bd7e.zip
swift-contrib-b01f65e011503a76c5f3ef6272f7ff77afb2bd7e.tar.bz2
Tweaked build flags.
-rw-r--r--BuildTools/SCons/SConscript.boot8
1 files changed, 6 insertions, 2 deletions
diff --git a/BuildTools/SCons/SConscript.boot b/BuildTools/SCons/SConscript.boot
index 2463d6c..2ea05db 100644
--- a/BuildTools/SCons/SConscript.boot
+++ b/BuildTools/SCons/SConscript.boot
@@ -209,90 +209,94 @@ if env["PLATFORM"] == "win32" :
if env["PLATFORM"] == "darwin" and not env["target"] in ["iphone-device", "iphone-simulator", "xcode"] :
env.Append(FRAMEWORKS = ["IOKit", "AppKit", "SystemConfiguration"])
# Testing
env["TEST_TYPE"] = env["test"]
if "check" in ARGUMENTS :
env["TEST_TYPE"] = "unit"
env["checker_report"] = ARGUMENTS.get("checker_report", False)
env["TEST"] = (env["TEST_TYPE"] != "none") or env.GetOption("clean")
if env.get("valgrind", 0) :
env["TEST_RUNNER"] = "valgrind --suppressions=QA/valgrind.supp -q --leak-check=full --track-origins=yes "
env["TEST_IGNORE_RESULT"] = "ignore_test_result" in ARGUMENTS
env["TEST_CREATE_LIBRARIES"] = "create_test_libraries" in ARGUMENTS
# Packaging
env["DIST"] = "dist" in ARGUMENTS or env.GetOption("clean")
for path in ["SWIFT_INSTALLDIR", "SWIFTEN_INSTALLDIR"] :
if ARGUMENTS.get(path, "") :
if os.path.isabs(ARGUMENTS[path]) :
env[path] = Dir(ARGUMENTS[path]).abspath
else :
env[path] = Dir("#/" + ARGUMENTS[path]).abspath
################################################################################
# XCode / iPhone / ...
################################################################################
target = env["target"]
if target in ["iphone-device", "iphone-simulator", "xcode"] :
# Extract/initialize all the information we need
if target == "xcode" :
# Get the information from the XCode environment
env["XCODE_PLATFORM_DEVELOPER_BIN_DIR"] = os.environ["PLATFORM_DEVELOPER_BIN_DIR"]
env["XCODE_SDKROOT"] = os.environ["SDKROOT"]
env["XCODE_ARCH_FLAGS"] = sum([["-arch", arch] for arch in os.environ["ARCHS"].split(" ")], [])
- # Usae absolute path sources so Xcode can highlight compilation errors in swiften
+ env["IPHONEOS_DEPLOYMENT_TARGET"] = os.environ["IPHONEOS_DEPLOYMENT_TARGET"]
+ # Use absolute path sources so Xcode can highlight compilation errors in swiften
env['CXXCOM'] = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM ${SOURCES.abspath}'
else :
# Hard code values
env["XCODE_PLATFORM_DEVELOPER_BIN_DIR"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin"
if target == "iphone-device":
env["XCODE_ARCH_FLAGS"] = ["-arch", "armv6", "-arch", "armv7"]
sdkPart = "iPhoneOS"
else :
env["XCODE_ARCH_FLAGS"] = ["-arch", "i386"]
sdkPart = "iPhoneSimulator"
sdkVer = "4.3"
env["XCODE_SDKROOT"] = "/Developer/Platforms/" + sdkPart + ".platform/Developer/SDKs/" + sdkPart + sdkVer + ".sdk"
+ env["IPHONEOS_DEPLOYMENT_TARGET"] = "4.1"
# Set the build flags
env["CC"] = "$XCODE_PLATFORM_DEVELOPER_BIN_DIR/gcc"
env["CXX"] = "$XCODE_PLATFORM_DEVELOPER_BIN_DIR/g++"
env["OBJCCFLAGS"] = ["-fobjc-abi-version=2", "-fobjc-legacy-dispatch"]
env["LD"] = env["CC"]
- env.Append(CCFLAGS = env["XCODE_ARCH_FLAGS"] + ["-fvisibility=hidden"])
+ env.Append(CCFLAGS = env["XCODE_ARCH_FLAGS"] + ["-fvisibility=hidden", "-miphoneos-version-min=" + env["IPHONEOS_DEPLOYMENT_TARGET"]])
+ if os.environ.get("GCC_THUMB_SUPPORT", False) :
+ env.Append(CCFLAGS = ["-mthumb"])
env.Append(LINKFLAGS = env["XCODE_ARCH_FLAGS"])
env.Append(CPPFLAGS = ["-isysroot", "$XCODE_SDKROOT"])
env.Append(FRAMEWORKS = ["CoreFoundation", "Foundation", "UIKit", "CoreGraphics"])
env.Append(LINKFLAGS = env["XCODE_ARCH_FLAGS"] + ["-isysroot", "$XCODE_SDKROOT", "-L\"$XCODE_SDKROOT/usr/lib\"", "-F\"$XCODE_SDKROOT/System/Library/Frameworks\"", "-F\"$XCODE_SDKROOT/System/Library/PrivateFrameworks\""])
# Bit of a hack, because BOOST doesn't know the endianness for ARM
env.Append(CPPDEFINES = ["_LITTLE_ENDIAN"])
# CCache
if env.get("ccache", False) :
env["ENV"]["HOME"] = os.environ["HOME"]
for var in os.environ :
if var.startswith("CCACHE_") :
env["ENV"][var] = os.environ[var]
if env.get("CC", "") != "" :
env["CC"] = "ccache " + env["CC"]
else :
env["CC"] = "ccache gcc"
if env.get("CXX", "") != "" :
env["CXX"] = "ccache " + env["CXX"]
else :
env["CC"] = "ccache g++"
conf_env = env.Clone()
Export("env")
Export("conf_env")
variant = ""
if env["enable_variants"] :
fingerprint = ",".join([flag for flag in env["CXXFLAGS"] + env["CCFLAGS"] if not flag.startswith("-W") and not flag.startswith("-fvisibility")])
variant = "build/" + fingerprint
if not os.path.exists(Dir("#/build").abspath) :
os.mkdir(Dir("#/build").abspath)
if os.path.exists(Dir("#/build/current").abspath) :
os.unlink(Dir("#/build/current").abspath)