summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2011-10-23 11:29:44 (GMT)
committerKevin Smith <git@kismith.co.uk>2011-11-26 15:45:48 (GMT)
commit81a7776d5ab523894a7c4745baee3988ad9f1ef9 (patch)
tree7e6e7a46abb69ac61884c4a5ca81fa76f51c3c2f /Swift/QtUI/SConscript
parent0a8486091b4cbcce1df883f4be1e65a4628c539b (diff)
downloadswift-contrib-81a7776d5ab523894a7c4745baee3988ad9f1ef9.zip
swift-contrib-81a7776d5ab523894a7c4745baee3988ad9f1ef9.tar.bz2
Initial support for WiX installer.
dist=1 on Windows now generates .msi instead, as long as wix_bindir is set to the path of \bin\ for WiX. nsis is no longer used
Diffstat (limited to 'Swift/QtUI/SConscript')
-rw-r--r--Swift/QtUI/SConscript56
1 files changed, 49 insertions, 7 deletions
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index a62e14c..95ec49a 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -11,70 +11,71 @@ def generateDefaultTheme(dir) :
filePath = os.path.join(path,file)
result += "<file alias=\"%(alias)s\">%(path)s</file>" % {
"alias": filePath[len(sourceDir)+1:],
"path": filePath
}
result += "</qresource>"
result += "</RCC>"
return result
Import("env")
myenv = env.Clone()
myenv["CXXFLAGS"] = filter(lambda x : x != "-Wfloat-equal", myenv["CXXFLAGS"])
myenv.UseFlags(env["SWIFT_CONTROLLERS_FLAGS"])
myenv.UseFlags(env["SWIFTOOLS_FLAGS"])
if myenv["HAVE_XSS"] :
myenv.UseFlags(env["XSS_FLAGS"])
if env["PLATFORM"] == "posix" :
myenv.Append(LIBS = ["X11"])
if myenv["HAVE_SPARKLE"] :
myenv.UseFlags(env["SPARKLE_FLAGS"])
myenv.UseFlags(env["SWIFTEN_FLAGS"])
myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
if myenv.get("HAVE_GROWL", False) :
myenv.UseFlags(myenv["GROWL_FLAGS"])
myenv.Append(CPPDEFINES = ["HAVE_GROWL"])
if myenv["swift_mobile"] :
myenv.Append(CPPDEFINES = ["SWIFT_MOBILE"])
if myenv.get("HAVE_SNARL", False) :
myenv.UseFlags(myenv["SNARL_FLAGS"])
myenv.Append(CPPDEFINES = ["HAVE_SNARL"])
myenv.UseFlags(myenv["PLATFORM_FLAGS"])
myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"])
myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"])
+myenv.Tool("wix", toolpath = ["#/BuildTools/SCons/Tools"])
qt4modules = ['QtCore', 'QtGui', 'QtWebKit']
if env["PLATFORM"] == "posix" :
qt4modules += ["QtDBus"]
myenv.EnableQt4Modules(qt4modules, debug = False)
myenv.Append(CPPPATH = ["."])
if env["PLATFORM"] == "win32" :
#myenv["LINKFLAGS"] = ["/SUBSYSTEM:CONSOLE"]
myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
myenv.Append(LIBS = "qtmain")
myenv.WriteVal("DefaultTheme.qrc", myenv.Value(generateDefaultTheme(myenv.Dir("#/Swift/resources/themes/Default"))))
sources = [
"main.cpp",
"QtAboutWidget.cpp",
"QtAvatarWidget.cpp",
"QtUIFactory.cpp",
"QtChatWindowFactory.cpp",
"QtChatWindow.cpp",
"QtClickableLabel.cpp",
"QtLoginWindow.cpp",
"QtMainWindow.cpp",
"QtProfileWindow.cpp",
"QtNameWidget.cpp",
"QtSettingsProvider.cpp",
"QtStatusWidget.cpp",
"QtScaledAvatarCache.cpp",
"QtSwift.cpp",
"QtURIHandler.cpp",
"QtChatView.cpp",
"QtChatTheme.cpp",
"QtChatTabs.cpp",
"QtSoundPlayer.cpp",
@@ -226,45 +227,86 @@ if env["PLATFORM"] == "win32" :
myenv.WriteVal("../Packaging/nsis/translations-uninstall.nsh", myenv.Value(nsis_translation_uninstall_script))
################################################################################
if env["PLATFORM"] == "darwin" :
frameworks = []
if env["HAVE_SPARKLE"] :
frameworks.append(env["SPARKLE_FRAMEWORK"])
if env["HAVE_GROWL"] :
frameworks.append(env["GROWL_FRAMEWORK"])
commonResources[""] = commonResources.get("", []) + ["#/Swift/resources/MacOSX/Swift.icns"]
app = myenv.AppBundle("Swift", version = myenv["SWIFT_VERSION"], resources = commonResources, frameworks = frameworks, handlesXMPPURIs = True)
if env["DIST"] :
myenv.Command(["Swift-${SWIFT_VERSION}.dmg"], [app], ["Swift/Packaging/MacOSX/package.sh " + app.path + " Swift/Packaging/MacOSX/Swift.dmg.gz $TARGET $QTDIR"])
if env.get("SWIFT_INSTALLDIR", "") :
env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram + openURIProgram)
env.InstallAs(os.path.join(env["SWIFT_INSTALLDIR"], "share", "pixmaps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm")
icons_path = os.path.join(env["SWIFT_INSTALLDIR"], "share", "icons", "hicolor")
env.InstallAs(os.path.join(icons_path, "32x32", "apps", "swift.xpm"), "#/Swift/resources/logo/logo-icon-32.xpm")
env.InstallAs(os.path.join(icons_path, "scalable", "apps", "swift.svg"), "#/Swift/resources/logo/logo-icon.svg")
for i in ["16", "22", "24", "64", "128"] :
env.InstallAs(os.path.join(icons_path, i + "x" + i, "apps", "swift.png"), "#/Swift/resources/logo/logo-icon-" + i + ".png")
env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "applications"), "#/Swift/resources/swift.desktop")
for dir, resource in commonResources.items() :
env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "share", "swift", dir), resource)
if env["PLATFORM"] == "win32" :
if env["DIST"] :
commonResources[""] = commonResources.get("", []) + [
#os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),
#os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),
"#/Swift/resources/images",
]
+ qtimageformats = ["gif", "ico", "jpeg", "mng", "svg", "tiff"]
+ qtlibs = ["QtCore4", "QtGui4", "QtNetwork4", "QtWebKit4", "QtXMLPatterns4", "phonon4"]
myenv.WindowsBundle("Swift",
resources = commonResources,
- qtimageformats = ["gif", "ico", "jpeg", "mng", "svg", "tiff"],
- qtlibs = ["QtCore4", "QtGui4", "QtNetwork4", "QtWebKit4", "QtXMLPatterns4", "phonon4"])
+ qtimageformats = qtimageformats,
+ qtlibs = qtlibs)
+
+ #myenv.Append(NSIS_OPTIONS = [
+ # "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",
+ # "/DbuildVersion=" + myenv["SWIFT_VERSION"]
+ # ])
+ #myenv.Nsis("../Packaging/nsis/swift.nsi")
+ #myenv.WiX("../Packaging/wix/swift.msi", ["../Packaging/WiX/Swift.wxs"])
+ if env["SCONS_STAGE"] == "build" and env.get("wix_bindir", None):
+ licensefile = open('../../COPYING', 'r')
+ rtf = '{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard'
+ for line in licensefile:
+ rtf += line
+ rtf += '\\par'
+ rtf += '}'
+ licensefile.close()
+ myenv.WriteVal("Swift/COPYING.rtf", env.Value(rtf))
+
+ wixvariables = {'VCCRTFile': env.get("vcredist", "c:\\Program Files\\Common Files\\Merge Modules") + "\\Microsoft_VC90_CRT_x86.msm"}
+ wixincludecontent = "<Include>"
+ for key in wixvariables:
+ wixincludecontent += "<?define %s = \"%s\" ?>" % (key, wixvariables[key])
+ wixincludecontent += "</Include>"
+ myenv.WriteVal("..\\Packaging\\Wix\\variables.wxs", env.Value(wixincludecontent))
+ heatDependencies = ['Swift/COPYING.rtf', 'Swift/Swift.exe']
+ for dir, resourceFiles in commonResources.items():
+ for resource in resourceFiles:
+ e = env.Entry(resource)
+ if e.isdir():
+ for subresource in env.Glob(str(e) + "/*") :
+ heatDependencies.append("Swift/" + e.name + "/" + subresource.name)
+ else:
+ if resource[-3:] != ".qm":
+ heatDependencies.append("Swift/" + resource)
+ for resource in qtlibs:
+ heatDependencies.append("Swift/" + resource + ".dll")
+ for resource in qtimageformats:
+ heatDependencies.append("Swift/imageformats/q" + resource + "4.dll")
+ for lang in translation_languages:
+ heatDependencies.append("Swift/translations/swift_" + lang + ".qm")
+ myenv.WiX_Heat('..\\Packaging\\WiX\\gen_files.wxs', heatDependencies)
+ myenv.WiX_Candle('..\\Packaging\\WiX\\Swift.wixobj', '..\\Packaging\\WiX\\Swift.wxs')
+ myenv.WiX_Candle('..\\Packaging\\WiX\\gen_files.wixobj', '..\\Packaging\\WiX\\gen_files.wxs')
+ myenv.WiX_Light('..\\Packaging\\WiX\\Swift-' + myenv["SWIFT_VERSION"] + '.msi', ['..\\Packaging\\WiX\\gen_files.wixobj','..\\Packaging\\WiX\\Swift.wixobj'])
+
- myenv.Append(NSIS_OPTIONS = [
- "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",
- "/DbuildVersion=" + myenv["SWIFT_VERSION"]
- ])
- myenv.Nsis("../Packaging/nsis/swift.nsi")