diff options
| -rw-r--r-- | BuildTools/SCons/SConstruct | 73 | 
1 files changed, 34 insertions, 39 deletions
| diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct index ac28ec9..f8eda83 100644 --- a/BuildTools/SCons/SConstruct +++ b/BuildTools/SCons/SConstruct @@ -146,47 +146,42 @@ env["DIST"] = "dist" in ARGUMENTS or env.GetOption("clean")  if ARGUMENTS.get("SWIFT_INSTALLDIR", "") :  	env["SWIFT_INSTALLDIR"] = Dir(ARGUMENTS["SWIFT_INSTALLDIR"]).abspath -# cross-compiling + +################################################################################ +# XCode / iPhone / ... +################################################################################ +  target = env["target"] -if target == "xcode" : -	m = re.match(".*/iPhoneOS(.*)\.sdk", os.environ["SDKROOT"]) -	if m : -		target = "iphone-device" -		sdkVer = m.group(1) +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(" ")], [])  	else : -		print "Matching simulator " + os.environ["SDKROOT"] -		m = re.match(".*/iPhoneSimulator(.*)\.sdk", os.environ["SDKROOT"]) -		if m : -			print "YAY" -			target = "iphone-simulator" -			sdkVer = m.group(1) -else : -	sdkVer = "4.0" -if target in ("iphone-device", "iphone-simulator"): -	if target == "iphone-device": -		sdkPart = "iPhoneOS" -	else : -		sdkPart = "iPhoneSimulator" -	sdk = "/Developer/Platforms/" + sdkPart + ".platform/Developer/SDKs/" + sdkPart + sdkVer + ".sdk" - -	if target == "iphone-device": -		sdkPart = "iPhoneOS" -		env["CC"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1" -		env["CXX"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-g++-4.2.1" -		env["PATH"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/" -		env["LD"] = env["CC"] -		env.Append(CPPPATH = [sdk + "/usr/include/c++/4.2.1/armv7-apple-darwin10"]) -		env.Append(CPPDEFINES = ["_LITTLE_ENDIAN"]) -		targetIncludesArch = "arm" -	if target == "iphone-simulator": -		env.Append(CCFLAGS = ["-arch", "i386"]) -		env.Append(LINKFLAGS = ["-arch", "i386"]) -		targetIncludesArch = "i686" - +		# Hard code values +		env["XCODE_PLATFORM_DEVELOPER_BIN_DIR"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin" +		if target == "iphone-device": +			env["XCODE_ARCHFLAGS"] = ["-arch", "armv6"] +			sdkPart = "iPhoneOS" +		else : +			env["XCODE_ARCHFLAGS"] = ["-arch", "i386"] +			sdkPart = "iPhoneSimulator" +		sdkVer = "4.0" +		env["XCODE_SDKROOT"] = "/Developer/Platforms/" + sdkPart + ".platform/Developer/SDKs/" + sdkPart + sdkVer + ".sdk" + +	# Set the build flags +	env["CC"] = "$XCODE_PLATFORM_DEVELOPER_BIN_DIR/gcc" +	env["CXX"] = "$XCODE_PLATFORM_DEVELOPER_BIN_DIR/g++" +	env["LD"] = env["CC"] +	env.Append(CCFLAGS = env["XCODE_ARCH_FLAGS"]) +	env.Append(LINKFLAGS = env["XCODE_ARCH_FLAGS"]) +	env.Append(CPPFLAGS = ["-isysroot", "$XCODE_SDKROOT"])  	env.Append(FRAMEWORKS = ["CoreFoundation", "Foundation", "UIKit", "CoreGraphics"]) -	env.Append(LINKFLAGS = ["-L\"" + sdk + "/usr/lib\"", "-F\"" + sdk + "/System/Library/Frameworks\"", "-F\"" + sdk + "/System/Library/PrivateFrameworks\""]) -	env.Append(CPPFLAGS = ["-isysroot", sdk]) - +	env.Append(LINKFLAGS = ["-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"])   conf_env = env.Clone() @@ -397,7 +392,7 @@ if use_openssl and openssl_conf.CheckCHeader("openssl/ssl.h") :  		env["OPENSSL_FLAGS"]["LIBS"] = ["libeay32MT", "ssleay32MT"]  	else:  		env["OPENSSL_FLAGS"]["LIBS"] = ["ssl", "crypto"] -elif target in ("iphone-device", "iphone-simulator") : +elif target in ("iphone-device", "iphone-simulator", "xcode") :  	env["OPENSSL_BUNDLED"] = True  	env["HAVE_OPENSSL"] = True  else : | 
 Swift
 Swift