summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-08-11 19:16:25 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-08-11 19:16:25 (GMT)
commit3f94565804fce16c98e77e59934e87f95c2b1320 (patch)
treeccc5f8f8a8fe4a336a80779ea438799744a2c6a2
parentebb5870b75cb914877715ed031c6474acda36c46 (diff)
downloadswift-contrib-3f94565804fce16c98e77e59934e87f95c2b1320.zip
swift-contrib-3f94565804fce16c98e77e59934e87f95c2b1320.tar.bz2
Add Swift Windows bundling.
-rw-r--r--SConstruct5
-rw-r--r--Swift/QtUI/SConscript30
2 files changed, 30 insertions, 5 deletions
diff --git a/SConstruct b/SConstruct
index 1d8c2d6..a7727bd 100644
--- a/SConstruct
+++ b/SConstruct
@@ -92,6 +92,7 @@ if int(ARGUMENTS.get("V", 0)) == 0:
env["QT4_MOCFROMCXXCOMSTR"] = " \033[0;34;140mMOC\033[0m $TARGET"
env["GENCOMSTR"] = " \033[0;34;140mGEN\033[0m $TARGET"
env["RCCOMSTR"] = " \033[0;34;140mRC\033[0m $TARGET"
+ env["BUNDLECOMSTR"] = " \033[0;34;140mBUNDLE\033[0m $TARGET"
#Progress( " \033[0;35;140mDEP\033[0m $TARGET\n")
else :
env["CCCOMSTR"] = " CC $TARGET"
@@ -105,10 +106,13 @@ if int(ARGUMENTS.get("V", 0)) == 0:
env["QT4_MOCFROMCXXCOMSTR"] = " MOC $TARGET"
env["GENCOMSTR"] = " GEN $TARGET"
env["RCCOMSTR"] = " RC $TARGET"
+ env["BUNDLECOMSTR"] = " BUNDLE $TARGET"
#Progress(' DEP $TARGET\n')
if env["PLATFORM"] == "win32" :
env["MSVC_BATCH"] = 1
+ env["LINKCOM"] = [env["LINKCOM"], 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;1']
+ env["SHLINKCOM"] = [env["SHLINKCOM"], 'mt.exe -nologo -manifest ${TARGET}.manifest -outputresource:$TARGET;2']
################################################################################
@@ -163,6 +167,7 @@ if openssl_prefix :
openssl_flags = { "CPPPATH": [os.path.join(openssl_prefix, "include")] }
if env["PLATFORM"] == "win32" :
openssl_flags["LIBPATH"] = [os.path.join(openssl_prefix, "lib", "VC")]
+ env["OPENSSL_DIR"] = openssl_prefix
else :
openssl_flags["LIBPATH"] = [os.path.join(openssl_prefix, "lib")]
openssl_env.MergeFlags(openssl_flags)
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index 2fd1bc1..0c458a1 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -1,4 +1,4 @@
-import os
+import os, shutil
def generateDefaultTheme(env, target, source) :
sourceDir = source[0].abspath
@@ -15,7 +15,7 @@ def generateDefaultTheme(env, target, source) :
output.write("</qresource>")
output.write("</RCC>")
-def createBundle(env, target, source) :
+def createAppBundle(env, target, source) :
target = target[0].abspath
source = source[0].abspath
os.makedirs(target + "/Contents/MacOS")
@@ -24,9 +24,17 @@ def createBundle(env, target, source) :
pkgInfo.write("APPL\77\77\77\77")
pkgInfo.close()
+def buildWindowsBundle(env, target, source) :
+ sources = source
+ if not os.path.exists(target[0].abspath) :
+ os.mkdir(target[0].abspath)
+ for source in sources :
+ shutil.copy(source.abspath, target[0].abspath)
+
Import("env")
myenv = env.Clone()
+myenv["BUILDERS"]["WindowsBundle"] = Builder(action = Action(buildWindowsBundle, cmdstr = "$BUNDLECOMSTR"))
myenv.MergeFlags(env["SWIFT_CONTROLLERS_FLAGS"])
myenv.MergeFlags(env["SWIFTEN_FLAGS"])
@@ -79,13 +87,25 @@ if env["PLATFORM"] == "win32" :
sources += ["../resources/Windows/Swift.res"]
if env["PLATFORM"] == "darwin" or env["PLATFORM"] == "win32" :
- myenv.Program("Swift", sources)
+ swiftProgram = myenv.Program("Swift", sources)
else :
- myenv.Program("swift", sources)
+ swiftProgram = myenv.Program("swift", sources)
myenv.Uic4("QtJoinMUCDialog.ui")
myenv.Qrc("DefaultTheme.qrc")
myenv.Qrc("Swift.qrc")
if env["PLATFORM"] == "darwin" :
- myenv.Command("Swift.app", "Swift", createBundle)
+ myenv.Command("Swift.app", "Swift", createAppBundle)
+
+if env["PLATFORM"] == "win32" :
+ myenv.WindowsBundle(Dir("Swift"), [
+ swiftProgram[0],
+ File(os.path.join(env["QTDIR"], "bin", "QtCore4.dll")),
+ File(os.path.join(env["QTDIR"], "bin", "QtGui4.dll")),
+ File(os.path.join(env["QTDIR"], "bin", "QtNetwork4.dll")),
+ File(os.path.join(env["QTDIR"], "bin", "QtWebKit4.dll")),
+ File(os.path.join(env["QTDIR"], "bin", "phonon4.dll")),
+ File(os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll")),
+ File(os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll")),
+ ])