From 1e55d19a900dae82947e18387cc695262b10ce26 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Tue, 2 Mar 2010 10:15:30 +0000 Subject: Adding iPhone compilation diff --git a/QA/UnitTest/SConscript b/QA/UnitTest/SConscript index 1cd92a3..a1d5a60 100644 --- a/QA/UnitTest/SConscript +++ b/QA/UnitTest/SConscript @@ -11,7 +11,7 @@ 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("SQLITE_FLAGS", "")) myenv.MergeFlags(env.get("LIBXML_FLAGS", "")) myenv.MergeFlags(env.get("EXPAT_FLAGS", "")) myenv.MergeFlags(env["ZLIB_FLAGS"]) diff --git a/SConstruct b/SConstruct index d90b712..3e9b178 100644 --- a/SConstruct +++ b/SConstruct @@ -15,11 +15,12 @@ vars.Add(BoolVariable("debug", "Compile with debug information", "yes" if os.nam vars.Add(BoolVariable("warnings", "Compile with warnings turned on", "yes" if os.name != "nt" else "no")) 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"])) if os.name != "nt" : vars.Add(BoolVariable("coverage", "Compile with coverage information", "no")) if os.name == "posix" : vars.Add(BoolVariable("valgrind", "Run tests with valgrind", "no")) -if os.name == "mac" : +if os.name == "mac" or (os.name == "posix" and os.uname()[0] == "Darwin"): vars.Add(BoolVariable("universal", "Create universal binaries", "no")) if os.name == "nt" : vars.Add(PathVariable("vcredist", "MSVC redistributable dir", "", PathVariable.PathAccept)) @@ -126,6 +127,34 @@ if env.get("valgrind", 0) : if ARGUMENTS.get("SWIFT_INSTALLDIR", "") : env["SWIFT_INSTALLDIR"] = Dir(ARGUMENTS["SWIFT_INSTALLDIR"]).abspath +# cross-compiling +target = env["target"] +if target in ("iphone-device", "iphone-simulator"): + if target == "iphone-device": + sdkPart = "iPhoneOS" + env["CC"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin9-gcc-4.0.1" + env["CXX"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin9-g++-4.0.1" + env["PATH"] = "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/" + env["LD"] = env["CC"] +# env["openssl"] = "3rdParty/openssl-0.9.8l-arm" + targetIncludesArch = "arm" + + if target == "iphone-simulator": + sdkPart = "iPhoneSimulator" + env.Append(CCFLAGS = ["-arch", "i386"]) + env.Append(LINKFLAGS = ["-arch", "i386"]) + targetIncludesArch = "i686" + + sdkVer = "3.0" + sdk = "/Developer/Platforms/" + sdkPart + ".platform/Developer/SDKs/" + sdkPart + sdkVer + ".sdk" + + env["FRAMEWORKS"] = ["CoreFoundation", "Foundation", "UIKit", "CoreGraphics"] + env.Append(LINKFLAGS = ["-L\"" + sdk + "/usr/lib\"", "-F\"" + sdk + "/System/Library/Frameworks\"", "-F\"" + sdk + "/System/Library/PrivateFrameworks\""]) + env["CPPPATH"] = ["/Users/kismith/devel/swift/iPhone/Swiftly/swift/", "/Developer/Platforms/" + sdkPart + ".platform/Developer/usr/lib/gcc/" + targetIncludesArch + "-apple-darwin9/4.0.1/include/", sdk + "/usr/include", sdk + "/usr/include/c++/4.0.0/" + targetIncludesArch + "-apple-darwin9", sdk + "/usr/include/c++/4.0.0", "/Developer/Platforms/" + sdkPart + ".platform/Developer/usr/include/"] + +# end cross compiling stuff + + conf_env = env.Clone() Export("env") @@ -326,12 +355,14 @@ elif env.get("bonjour", False) : ################################################################################ # Third-party modules -SConscript(dirs = [ - "3rdParty/CppUnit", +third_party_dirs = ["3rdParty/CppUnit", "3rdParty/Boost", - "3rdParty/LibIDN", - "3rdParty/CAres", - "3rdParty/SQLite"]) + "3rdParty/LibIDN"] +if env.get("target", 0) == "native": + third_party_dirs += ["3rdParty/CAres", + "3rdParty/SQLite"] + +SConscript(dirs=third_party_dirs) # Checker SConscript(dirs = ["QA/Checker"], test_only = True) diff --git a/Swift/SConscript b/Swift/SConscript index 32f9b64..1460091 100644 --- a/Swift/SConscript +++ b/Swift/SConscript @@ -10,4 +10,6 @@ if not GetOption("help") and not env.get("HAVE_OPENSSL", 0) : env["SWIFT_VERSION"] = "0.9.9." + datetime.date.today().strftime("%Y%m%d") SConscript("Controllers/SConscript") -SConscript("QtUI/SConscript") + +if env["target"] == "native": + SConscript("QtUI/SConscript") diff --git a/Swiften/Application/SConscript b/Swiften/Application/SConscript index 7696bd7..78b3a34 100644 --- a/Swiften/Application/SConscript +++ b/Swiften/Application/SConscript @@ -5,7 +5,7 @@ sources = [ "ApplicationMessageDisplay.cpp", ] -if swiften_env["PLATFORM"] == "darwin" : +if swiften_env["PLATFORM"] == "darwin" and swiften_env["target"] == "native" : sources += [ "MacOSX/MacOSXApplication.cpp", "MacOSX/MacOSXApplicationMessageDisplay.mm", diff --git a/Swiften/EventLoop/SConscript b/Swiften/EventLoop/SConscript index 93341a3..5d1c3cb 100644 --- a/Swiften/EventLoop/SConscript +++ b/Swiften/EventLoop/SConscript @@ -7,7 +7,7 @@ sources = [ "SimpleEventLoop.cpp", ] -if swiften_env["PLATFORM"] == "darwin" : +if swiften_env["PLATFORM"] == "darwin" and swiften_env["target"] == "native": sources += [ "Cocoa/CocoaEventLoop.mm", "Cocoa/CocoaEvent.mm" diff --git a/Swiften/Examples/SConscript b/Swiften/Examples/SConscript index 4ab80c2..a4d5998 100644 --- a/Swiften/Examples/SConscript +++ b/Swiften/Examples/SConscript @@ -1,3 +1,8 @@ -SConscript(dirs = [ +Import("swiften_env") + +myenv = swiften_env.Clone() + +if myenv["target"] == "native": + SConscript(dirs = [ "SendMessage" ]) diff --git a/Swiften/History/SConscript b/Swiften/History/SConscript index 328ce1c..bc80780 100644 --- a/Swiften/History/SConscript +++ b/Swiften/History/SConscript @@ -1,7 +1,8 @@ Import("swiften_env") myenv = swiften_env.Clone() -myenv.MergeFlags(swiften_env["SQLITE_FLAGS"]) +if myenv["target"] == "native": + myenv.MergeFlags(swiften_env["SQLITE_FLAGS"]) objects = myenv.StaticObject([ "HistoryManager.cpp", diff --git a/Swiften/Network/SConscript b/Swiften/Network/SConscript index 767eee2..937ab0c 100644 --- a/Swiften/Network/SConscript +++ b/Swiften/Network/SConscript @@ -2,9 +2,10 @@ Import("swiften_env") myenv = swiften_env.Clone() myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) -myenv.MergeFlags(myenv["CARES_FLAGS"]) +if myenv["target"] == "native": + myenv.MergeFlags(myenv["CARES_FLAGS"]) -objects = myenv.StaticObject([ +sourceList = [ "BoostConnection.cpp", "BoostConnectionFactory.cpp", "BoostConnectionServer.cpp", @@ -12,7 +13,7 @@ objects = myenv.StaticObject([ "BoostIOServiceThread.cpp", "ConnectionFactory.cpp", "ConnectionServer.cpp", - "Connector.cpp", + "Connector.cpp", "TimerFactory.cpp", "DummyTimerFactory.cpp", "BoostTimerFactory.cpp", @@ -21,10 +22,13 @@ objects = myenv.StaticObject([ "DomainNameServiceQuery.cpp", "PlatformDomainNameResolver.cpp", "PlatformDomainNameServiceQuery.cpp", - "CAresDomainNameResolver.cpp", "StaticDomainNameResolver.cpp", "HostAddress.cpp", "Timer.cpp", - "BoostTimer.cpp", - ]) + "BoostTimer.cpp"] +if myenv["target"] == "native": + sourceList.append("CAresDomainNameResolver.cpp") + + +objects = myenv.StaticObject(sourceList) swiften_env.Append(SWIFTEN_OBJECTS = [objects]) diff --git a/Swiften/QA/ClientTest/SConscript b/Swiften/QA/ClientTest/SConscript index f22e89d..bc9cf95 100644 --- a/Swiften/QA/ClientTest/SConscript +++ b/Swiften/QA/ClientTest/SConscript @@ -8,7 +8,7 @@ if env["TEST"] : myenv.MergeFlags(myenv["CPPUNIT_FLAGS"]) myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) myenv.MergeFlags(myenv["BOOST_FLAGS"]) - myenv.MergeFlags(myenv["SQLITE_FLAGS"]) + myenv.MergeFlags(myenv.get("SQLITE_FLAGS", "")) myenv.MergeFlags(myenv["ZLIB_FLAGS"]) myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) myenv.MergeFlags(myenv.get("LIBXML_FLAGS", "")) -- cgit v0.10.2-6-g49f6