summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-03-16 18:46:51 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-03-16 18:46:51 (GMT)
commit9b55c094105cc2746dc5e4929d3b7c2cd0956a37 (patch)
treed5d67c4f61f3ec6372935d1314776c56d8767ebc
parent09f48b8434dbdc0d5f55a7f21a55e6ff21f4fa60 (diff)
downloadswift-contrib-9b55c094105cc2746dc5e4929d3b7c2cd0956a37.zip
swift-contrib-9b55c094105cc2746dc5e4929d3b7c2cd0956a37.tar.bz2
Added possibility to dynamically link Swiften.
Resolves: #798
-rw-r--r--Swiften/Avatars/SConscript2
-rw-r--r--Swiften/Base/SConscript2
-rw-r--r--Swiften/Component/SConscript2
-rw-r--r--Swiften/Disco/SConscript2
-rw-r--r--Swiften/Entity/SConscript2
-rw-r--r--Swiften/EventLoop/SConscript4
-rw-r--r--Swiften/FileTransfer/SConscript2
-rw-r--r--Swiften/History/SConscript2
-rw-r--r--Swiften/IDN/SConscript2
-rw-r--r--Swiften/JID/SConscript2
-rw-r--r--Swiften/Jingle/SConscript2
-rw-r--r--Swiften/LinkLocal/SConscript2
-rw-r--r--Swiften/Network/SConscript2
-rw-r--r--Swiften/Parser/SConscript2
-rw-r--r--Swiften/Presence/SConscript2
-rw-r--r--Swiften/SASL/SConscript2
-rw-r--r--Swiften/SConscript21
-rw-r--r--Swiften/StreamManagement/SConscript2
-rw-r--r--Swiften/StreamStack/SConscript2
-rw-r--r--Swiften/TLS/SConscript6
-rw-r--r--Swiften/VCards/SConscript2
21 files changed, 40 insertions, 27 deletions
diff --git a/Swiften/Avatars/SConscript b/Swiften/Avatars/SConscript
index acf2592..46ae897 100644
--- a/Swiften/Avatars/SConscript
+++ b/Swiften/Avatars/SConscript
@@ -1,6 +1,6 @@
Import("swiften_env")
-objects = swiften_env.StaticObject([
+objects = swiften_env.SwiftenObject([
"AvatarFileStorage.cpp",
"VCardUpdateAvatarManager.cpp",
"VCardAvatarManager.cpp",
diff --git a/Swiften/Base/SConscript b/Swiften/Base/SConscript
index ca22044..01252e5 100644
--- a/Swiften/Base/SConscript
+++ b/Swiften/Base/SConscript
@@ -1,6 +1,6 @@
Import("swiften_env")
-objects = swiften_env.StaticObject([
+objects = swiften_env.SwiftenObject([
"ByteArray.cpp",
"Error.cpp",
"Log.cpp",
diff --git a/Swiften/Component/SConscript b/Swiften/Component/SConscript
index 0ca5a02..0a9f250 100644
--- a/Swiften/Component/SConscript
+++ b/Swiften/Component/SConscript
@@ -9,4 +9,4 @@ sources = [
"Component.cpp",
]
-swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.StaticObject(sources))
+swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources))
diff --git a/Swiften/Disco/SConscript b/Swiften/Disco/SConscript
index ef2bd1b..9982192 100644
--- a/Swiften/Disco/SConscript
+++ b/Swiften/Disco/SConscript
@@ -1,6 +1,6 @@
Import("swiften_env")
-objects = swiften_env.StaticObject([
+objects = swiften_env.SwiftenObject([
"CapsInfoGenerator.cpp",
"CapsManager.cpp",
"EntityCapsManager.cpp",
diff --git a/Swiften/Entity/SConscript b/Swiften/Entity/SConscript
index 78a298c..1342ec1 100644
--- a/Swiften/Entity/SConscript
+++ b/Swiften/Entity/SConscript
@@ -1,6 +1,6 @@
Import("swiften_env")
-objects = swiften_env.StaticObject([
+objects = swiften_env.SwiftenObject([
"Entity.cpp",
])
swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/EventLoop/SConscript b/Swiften/EventLoop/SConscript
index 31ad9a8..21ae8b9 100644
--- a/Swiften/EventLoop/SConscript
+++ b/Swiften/EventLoop/SConscript
@@ -7,13 +7,13 @@ sources = [
"SimpleEventLoop.cpp",
]
-objects = swiften_env.StaticObject(sources)
+objects = swiften_env.SwiftenObject(sources)
swiften_env.Append(SWIFTEN_OBJECTS = [objects])
if swiften_env["PLATFORM"] == "darwin" :
myenv = swiften_env.Clone()
myenv.Append(CXXFLAGS = myenv["OBJCCFLAGS"])
- objects = myenv.StaticObject([
+ objects = myenv.SwiftenObject([
"Cocoa/CocoaEventLoop.mm",
"Cocoa/CocoaEvent.mm"
])
diff --git a/Swiften/FileTransfer/SConscript b/Swiften/FileTransfer/SConscript
index 9f3234f..ea9e7bb 100644
--- a/Swiften/FileTransfer/SConscript
+++ b/Swiften/FileTransfer/SConscript
@@ -16,4 +16,4 @@ sources = [
"IBBReceiveSession.cpp",
]
-swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.StaticObject(sources))
+swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources))
diff --git a/Swiften/History/SConscript b/Swiften/History/SConscript
index c197653..9c2a9d6 100644
--- a/Swiften/History/SConscript
+++ b/Swiften/History/SConscript
@@ -4,7 +4,7 @@ Import("swiften_env")
#if myenv["target"] == "native":
# myenv.MergeFlags(swiften_env.get("SQLITE_FLAGS", {}))
#
-#objects = myenv.StaticObject([
+#objects = myenv.SwiftenObject([
# "HistoryManager.cpp",
# "SQLiteHistoryManager.cpp",
# ])
diff --git a/Swiften/IDN/SConscript b/Swiften/IDN/SConscript
index bfdb42c..7382578 100644
--- a/Swiften/IDN/SConscript
+++ b/Swiften/IDN/SConscript
@@ -3,7 +3,7 @@ Import("swiften_env")
myenv = swiften_env.Clone()
myenv.MergeFlags(swiften_env["LIBIDN_FLAGS"])
-objects = myenv.StaticObject([
+objects = myenv.SwiftenObject([
"StringPrep.cpp",
"IDNA.cpp",
])
diff --git a/Swiften/JID/SConscript b/Swiften/JID/SConscript
index d48fbb0..d347cd9 100644
--- a/Swiften/JID/SConscript
+++ b/Swiften/JID/SConscript
@@ -3,7 +3,7 @@ Import("swiften_env")
myenv = swiften_env.Clone()
myenv.MergeFlags(swiften_env["LIBIDN_FLAGS"])
-objects = myenv.StaticObject([
+objects = myenv.SwiftenObject([
"JID.cpp",
])
swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Jingle/SConscript b/Swiften/Jingle/SConscript
index c1aadea..a8890b7 100644
--- a/Swiften/Jingle/SConscript
+++ b/Swiften/Jingle/SConscript
@@ -8,4 +8,4 @@ sources = [
"JingleSession.cpp",
]
-swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.StaticObject(sources))
+swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources))
diff --git a/Swiften/LinkLocal/SConscript b/Swiften/LinkLocal/SConscript
index 3d4d737..6edf993 100644
--- a/Swiften/LinkLocal/SConscript
+++ b/Swiften/LinkLocal/SConscript
@@ -34,5 +34,5 @@ elif myenv.get("HAVE_AVAHI", 0) :
"DNSSD/Avahi/AvahiQuery.cpp"
]
-objects = myenv.StaticObject(sources)
+objects = myenv.SwiftenObject(sources)
swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Network/SConscript b/Swiften/Network/SConscript
index 2e376af..fa186fa 100644
--- a/Swiften/Network/SConscript
+++ b/Swiften/Network/SConscript
@@ -32,5 +32,5 @@ if myenv.get("HAVE_CARES", False) :
sourceList.append("CAresDomainNameResolver.cpp")
-objects = myenv.StaticObject(sourceList)
+objects = myenv.SwiftenObject(sourceList)
swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Parser/SConscript b/Swiften/Parser/SConscript
index 90b3b78..cbb2190 100644
--- a/Swiften/Parser/SConscript
+++ b/Swiften/Parser/SConscript
@@ -71,5 +71,5 @@ if myenv.get("HAVE_LIBXML", 0) :
myenv.Append(CPPDEFINES = "HAVE_LIBXML")
sources += ["LibXMLParser.cpp"]
-objects = myenv.StaticObject(sources)
+objects = myenv.SwiftenObject(sources)
swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/Presence/SConscript b/Swiften/Presence/SConscript
index 6911d45..33acbd3 100644
--- a/Swiften/Presence/SConscript
+++ b/Swiften/Presence/SConscript
@@ -1,6 +1,6 @@
Import("swiften_env")
-objects = swiften_env.StaticObject([
+objects = swiften_env.SwiftenObject([
"PresenceOracle.cpp",
"PresenceSender.cpp",
"DirectedPresenceSender.cpp",
diff --git a/Swiften/SASL/SConscript b/Swiften/SASL/SConscript
index 0ef9581..5a0cdef 100644
--- a/Swiften/SASL/SConscript
+++ b/Swiften/SASL/SConscript
@@ -3,7 +3,7 @@ Import("swiften_env", "env")
myenv = swiften_env.Clone()
myenv.MergeFlags(swiften_env["LIBIDN_FLAGS"])
-objects = myenv.StaticObject([
+objects = myenv.SwiftenObject([
"ClientAuthenticator.cpp",
"PLAINClientAuthenticator.cpp",
"PLAINMessage.cpp",
diff --git a/Swiften/SConscript b/Swiften/SConscript
index 8eeab37..7b8991e 100644
--- a/Swiften/SConscript
+++ b/Swiften/SConscript
@@ -6,12 +6,14 @@ Import("env")
# Flags
################################################################################
+swiften_dep_modules = ["BOOST", "LIBIDN", "ZLIB", "OPENSSL", "LIBXML", "EXPAT"]
+
if env["SCONS_STAGE"] == "flags" :
swiften_env = env.Clone()
swiften_env["LIBPATH"] = [Dir(".")]
swiften_env["LIBS"] = ["Swiften"]
dep_env = env.Clone()
- for module in ["BOOST", "LIBIDN", "ZLIB", "OPENSSL", "LIBXML", "EXPAT"] :
+ for module in swiften_dep_modules :
if env.get(module + "_BUNDLED", False) :
swiften_env.UseFlags(env.get(module + "_FLAGS", {}))
else :
@@ -33,12 +35,20 @@ if env["SCONS_STAGE"] == "flags" :
if env["SCONS_STAGE"] == "build" :
swiften_env = env.Clone()
- swiften_env.MergeFlags(swiften_env["BOOST_FLAGS"])
+ for module in swiften_dep_modules :
+ swiften_env.UseFlags(swiften_env.get(module + "_FLAGS", {}))
+ swiften_env.UseFlags(swiften_env["PLATFORM_FLAGS"])
+ def buildObject(env, sources) :
+ if ARGUMENTS.get("swiften_dll", False) :
+ return env.SharedObject(sources)
+ else :
+ return env.StaticObject(sources)
+ swiften_env.AddMethod(buildObject, "SwiftenObject")
+
Export("swiften_env")
# TODO: Move all this to a submodule SConscript
myenv = swiften_env.Clone()
- myenv.MergeFlags(myenv["ZLIB_FLAGS"])
sources = [
"Chat/ChatStateTracker.cpp",
"Chat/ChatStateNotifier.cpp",
@@ -167,7 +177,10 @@ if env["SCONS_STAGE"] == "build" :
"Examples"
])
- myenv.StaticLibrary("Swiften", sources + swiften_env["SWIFTEN_OBJECTS"])
+ if ARGUMENTS.get("swiften_dll", False) :
+ myenv.SharedLibrary("Swiften", sources + swiften_env["SWIFTEN_OBJECTS"])
+ else :
+ myenv.StaticLibrary("Swiften", sources + swiften_env["SWIFTEN_OBJECTS"])
env.Append(UNITTEST_SOURCES = [
File("Avatars/UnitTest/VCardUpdateAvatarManagerTest.cpp"),
diff --git a/Swiften/StreamManagement/SConscript b/Swiften/StreamManagement/SConscript
index d3fab8e..4eaef67 100644
--- a/Swiften/StreamManagement/SConscript
+++ b/Swiften/StreamManagement/SConscript
@@ -5,4 +5,4 @@ sources = [
"StanzaAckResponder.cpp",
]
-swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.StaticObject(sources)) \ No newline at end of file
+swiften_env.Append(SWIFTEN_OBJECTS = swiften_env.SwiftenObject(sources)) \ No newline at end of file
diff --git a/Swiften/StreamStack/SConscript b/Swiften/StreamStack/SConscript
index 0aca8d2..022c695 100644
--- a/Swiften/StreamStack/SConscript
+++ b/Swiften/StreamStack/SConscript
@@ -11,5 +11,5 @@ sources = [
"XMPPLayer.cpp",
]
-objects = myenv.StaticObject(sources)
+objects = myenv.SwiftenObject(sources)
swiften_env.Append(SWIFTEN_OBJECTS = [objects])
diff --git a/Swiften/TLS/SConscript b/Swiften/TLS/SConscript
index 43f7db6..b5829d6 100644
--- a/Swiften/TLS/SConscript
+++ b/Swiften/TLS/SConscript
@@ -1,6 +1,6 @@
Import("swiften_env")
-objects = swiften_env.StaticObject([
+objects = swiften_env.SwiftenObject([
"Certificate.cpp",
"CertificateFactory.cpp",
"CertificateTrustChecker.cpp",
@@ -12,14 +12,14 @@ objects = swiften_env.StaticObject([
myenv = swiften_env.Clone()
if myenv.get("HAVE_OPENSSL", 0) :
myenv.MergeFlags(myenv["OPENSSL_FLAGS"])
- objects += myenv.StaticObject([
+ objects += myenv.SwiftenObject([
"OpenSSL/OpenSSLContext.cpp",
"OpenSSL/OpenSSLCertificate.cpp",
"OpenSSL/OpenSSLContextFactory.cpp",
])
myenv.Append(CPPDEFINES = "HAVE_OPENSSL")
-objects += myenv.StaticObject(["PlatformTLSFactories.cpp"])
+objects += myenv.SwiftenObject(["PlatformTLSFactories.cpp"])
diff --git a/Swiften/VCards/SConscript b/Swiften/VCards/SConscript
index 13be7d3..e980ba3 100644
--- a/Swiften/VCards/SConscript
+++ b/Swiften/VCards/SConscript
@@ -1,6 +1,6 @@
Import("swiften_env")
-objects = swiften_env.StaticObject([
+objects = swiften_env.SwiftenObject([
"VCardManager.cpp",
"VCardStorage.cpp",
"VCardFileStorage.cpp",