summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-11-27 23:37:37 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-11-27 23:37:37 (GMT)
commit91570ab79252b37afeae3b230cb6023c5b52547a (patch)
tree011d77857557a28671a63a444dcf8e10db64ab3f
parentba717874781a33ea40a1aea1ad8b9efce3580fc2 (diff)
downloadswift-91570ab79252b37afeae3b230cb6023c5b52547a.zip
swift-91570ab79252b37afeae3b230cb6023c5b52547a.tar.bz2
Integrated Sparkle auto-updater.
-rw-r--r--BuildTools/SCons/Tools/AppBundle.py6
-rw-r--r--SConstruct1
-rw-r--r--SwifTools/AutoUpdater/DummyAutoUpdater.h10
-rw-r--r--SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.cpp19
-rw-r--r--SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h9
-rw-r--r--SwifTools/SConscript3
-rw-r--r--Swift/QtUI/QtSwift.cpp14
-rw-r--r--Swift/QtUI/QtSwift.h2
-rw-r--r--Swift/QtUI/SConscript145
-rw-r--r--Swift/QtUI/main.cpp3
-rw-r--r--Swiften/Application/MacOSX/MacOSXApplication.h2
-rw-r--r--Swiften/Application/SConscript3
12 files changed, 143 insertions, 74 deletions
diff --git a/BuildTools/SCons/Tools/AppBundle.py b/BuildTools/SCons/Tools/AppBundle.py
index 2849435..3d06e97 100644
--- a/BuildTools/SCons/Tools/AppBundle.py
+++ b/BuildTools/SCons/Tools/AppBundle.py
@@ -1,45 +1,49 @@
import SCons.Util
def generate(env) :
- def createAppBundle(env, bundle, version = "1.0", resources = [], info = {}) :
+ def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}) :
bundleContentsDir = bundle + ".app" + "/Contents"
resourcesDir = bundleContentsDir + "/Resources"
+ frameworksDir = bundleContentsDir + "/Frameworks"
env.Install(bundleContentsDir + "/MacOS", bundle)
env.WriteVal(bundleContentsDir + "/PkgInfo", env.Value("APPL\77\77\77\77"))
infoDict = {
"CFBundleDevelopmentRegion" : "English",
"CFBundleExecutable" : bundle,
"CFBundleIdentifier" : "im.swift." + bundle,
"CFBundleInfoDictionaryVersion" : "6.0",
"CFBundleName" : bundle,
"CFBundlePackageType" : "APPL",
"CFBundleSignature": "\77\77\77\77",
"CFBundleVersion" : version,
"CFBundleIconFile" : bundle,
"NSPrincipalClass" : "NSApplication",
"NSHumanReadableCopyright" : unichr(0xA9) + " 2009 Swift Development Team.\nAll Rights Reserved."
}
infoDict.update(info)
plist = """<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
"""
for key, value in infoDict.items() :
plist += "<key>" + key + "</key>\n"
plist += "<string>" + value.encode("utf-8") + "</string>\n"
plist += """</dict>
</plist>
"""
env.WriteVal(bundleContentsDir + "/Info.plist", env.Value(plist))
for resource in resources :
env.Install(resourcesDir, resource)
+ for framework in frameworks :
+ env.Install(frameworksDir, framework)
+
env.AddMethod(createAppBundle, "AppBundle")
def exists(env) :
return env["PLATFORM"] == "darwin"
diff --git a/SConstruct b/SConstruct
index 98cd348..121df77 100644
--- a/SConstruct
+++ b/SConstruct
@@ -179,96 +179,97 @@ if conf.CheckLib("z") :
env["ZLIB_FLAGS"] = ""
else :
SConscript("3rdParty/ZLib/SConscript")
if conf.CheckLib("dl") :
env.Append(LIBS = ["dl"])
if conf.CheckLib("c") :
env.Append(LIBS = ["c"])
if conf.CheckLib("resolv") :
env.Append(LIBS = ["resolv"])
# Expat
if conf.CheckCHeader("expat.h") and conf.CheckLib("expat") :
env["HAVE_EXPAT"] = 1
env["EXPAT_FLAGS"] = { "LIBS": ["expat"] }
conf.Finish()
# Xss
env["HAVE_XSS"] = 0
if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :
xss_flags = {
"LIBPATH": ["/usr/X11R6/lib"],
"LIBS": ["X11", "Xss"]
}
xss_env = conf_env.Clone()
xss_env.MergeFlags(xss_flags)
conf = Configure(xss_env)
if conf.CheckFunc("XScreenSaverQueryExtension") :
env["HAVE_XSS"] = 1
env["XSS_FLAGS"] = xss_flags
conf.Finish()
# Sparkle
env["HAVE_SPARKLE"] = 0
if env["PLATFORM"] == "darwin" :
sparkle_flags = {
"FRAMEWORKPATH": ["/Library/Frameworks"],
"FRAMEWORKS": ["Sparkle"]
}
sparkle_env = conf_env.Clone()
sparkle_env.MergeFlags(sparkle_flags)
conf = Configure(sparkle_env, custom_tests = { "CheckObjCHeader" : checkObjCHeader })
if conf.CheckObjCHeader("Sparkle/Sparkle.h") :
env["HAVE_SPARKLE"] = 1
env["SPARKLE_FLAGS"] = sparkle_flags
+ env["SPARKLE_FRAMEWORK"] = "/Library/Frameworks/Sparkle.framework"
conf.Finish()
# LibXML
conf = Configure(conf_env)
if conf.CheckCHeader("libxml/parser.h") and conf.CheckLib("xml2") :
env["HAVE_LIBXML"] = 1
env["LIBXML_FLAGS"] = { "LIBS": ["xml2"] }
conf.Finish()
if not env.get("HAVE_LIBXML", 0) :
libxml_env = conf_env.Clone()
libxml_env.Append(CPPPATH = ["/usr/include/libxml2"])
conf = Configure(libxml_env)
if conf.CheckCHeader("libxml/parser.h") and conf.CheckLib("xml2") :
env["HAVE_LIBXML"] = 1
env["LIBXML_FLAGS"] = { "CPPPATH": ["/usr/include/libxml2"], "LIBS": ["xml2"] }
conf.Finish()
# Bundled expat
bundledExpat = False
if not env.get("HAVE_EXPAT", 0) :
print "Expat or LibXML not found. Using bundled Expat"
SConscript("3rdParty/Expat/SConscript")
env["HAVE_EXPAT"] = 1
bundledExpat = True
# Qt
if env["qt"] :
env["QTDIR"] = env["qt"]
# OpenSSL
openssl_env = conf_env.Clone()
use_openssl = bool(env["openssl"])
openssl_prefix = env["openssl"] if isinstance(env["openssl"], str) else ""
openssl_flags = {}
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)
openssl_conf = Configure(openssl_env)
if use_openssl and openssl_conf.CheckCHeader("openssl/ssl.h") :
env["HAVE_OPENSSL"] = 1
env["OPENSSL_FLAGS"] = openssl_flags
diff --git a/SwifTools/AutoUpdater/DummyAutoUpdater.h b/SwifTools/AutoUpdater/DummyAutoUpdater.h
new file mode 100644
index 0000000..bdddb2a
--- /dev/null
+++ b/SwifTools/AutoUpdater/DummyAutoUpdater.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#include "SwifTools/AutoUpdater/AutoUpdater.h"
+
+namespace Swift {
+ class DummyAutoUpdater : public AutoUpdater {
+ public:
+ void checkForUpdates() {}
+ };
+}
diff --git a/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.cpp b/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.cpp
new file mode 100644
index 0000000..2049a4e
--- /dev/null
+++ b/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.cpp
@@ -0,0 +1,19 @@
+#include "SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h"
+
+#ifdef HAVE_SPARKLE
+#include "SwifTools/AutoUpdater/SparkleAutoUpdater.h"
+#else
+#include "SwifTools/AutoUpdater/DummyAutoUpdater.h"
+#endif
+
+namespace Swift {
+
+AutoUpdater* PlatformAutoUpdaterFactory::createAutoUpdater(const String& appcastURL) {
+#ifdef HAVE_SPARKLE
+ return new SparkleAutoUpdater(appcastURL);
+#else
+ return new DummyAutoUpdater();
+#endif
+}
+
+}
diff --git a/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h b/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h
new file mode 100644
index 0000000..4e3cef1
--- /dev/null
+++ b/SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h
@@ -0,0 +1,9 @@
+namespace Swift {
+ class AutoUpdater;
+ class String;
+
+ class PlatformAutoUpdaterFactory {
+ public:
+ AutoUpdater* createAutoUpdater(const String& appcastURL);
+ };
+}
diff --git a/SwifTools/SConscript b/SwifTools/SConscript
index 92e82be..a1b3d18 100644
--- a/SwifTools/SConscript
+++ b/SwifTools/SConscript
@@ -1,39 +1,42 @@
Import("env")
env["SWIFTOOLS_FLAGS"] = {
"LIBPATH": [Dir(".")],
"LIBS": ["SwifTools"]
}
myenv = env.Clone()
myenv.MergeFlags(myenv["BOOST_FLAGS"])
sources = [
"Idle/IdleDetector.cpp",
"Idle/ActualIdleDetector.cpp",
"Idle/IdleQuerier.cpp",
"Idle/PlatformIdleQuerier.cpp",
"AutoUpdater/AutoUpdater.cpp",
+ "AutoUpdater/PlatformAutoUpdaterFactory.cpp",
"Linkify.cpp",
]
if myenv.get("HAVE_SPARKLE", 0) :
+ myenv.MergeFlags(myenv["SPARKLE_FLAGS"])
+ myenv.Append(CPPDEFINES = ["HAVE_SPARKLE"])
sources += ["AutoUpdater/SparkleAutoUpdater.mm"]
if myenv["PLATFORM"] == "win32" :
sources += ["Idle/WindowsIdleQuerier.cpp"]
elif myenv["PLATFORM"] == "darwin" :
sources += ["Idle/MacOSXIdleQuerier.cpp"]
elif myenv["HAVE_XSS"] :
myenv.Append(CPPDEFINES = ["HAVE_XSS"])
sources += ["Idle/XSSIdleQuerier.cpp"]
else :
sources += ["Idle/DummyIdleQuerier.cpp"]
myenv.StaticLibrary("SwifTools", sources)
SConscript(dirs = [
"Idle/IdleQuerierTest",
"Idle/UnitTest",
"UnitTest"
])
diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp
index 7e204e9..4c7eabb 100644
--- a/Swift/QtUI/QtSwift.cpp
+++ b/Swift/QtUI/QtSwift.cpp
@@ -1,68 +1,82 @@
#include "QtSwift.h"
#include "QtLoginWindowFactory.h"
#include "QtChatWindowFactory.h"
#include "QtLoginWindow.h"
#include "QtChatTabs.h"
#include "QtMainWindowFactory.h"
#include "Roster/QtTreeWidgetFactory.h"
#include "QtSystemTray.h"
#include "QtSoundPlayer.h"
#include "QtXMLConsoleWidgetFactory.h"
#include <boost/bind.hpp>
#include <QSplitter>
#include "Swiften/Application/Application.h"
#include "Swiften/Application/Platform/PlatformApplication.h"
#include "Swiften/Base/String.h"
+#include "Swiften/Base/Platform.h"
#include "Swiften/Elements/Presence.h"
#include "Swiften/Client/Client.h"
#include "Swift/Controllers/ChatController.h"
#include "Swift/Controllers/MainController.h"
#include "Swift/QtUI/BuildVersion.h"
+#include "SwifTools/AutoUpdater/AutoUpdater.h"
+#include "SwifTools/AutoUpdater/PlatformAutoUpdaterFactory.h"
namespace Swift{
+#if defined(SWIFTEN_PLATFORM_MACOSX)
+#define SWIFT_APPCAST_URL "http://swift.im/appcast/psi-mac.xml"
+#else
+#define SWIFT_APPCAST_URL ""
+#endif
+
+
QtSwift::QtSwift(bool netbookMode) {
if (netbookMode) {
splitter_ = new QSplitter();
} else {
splitter_ = NULL;
}
QCoreApplication::setApplicationName("Swift");
QCoreApplication::setOrganizationName("Swift");
QCoreApplication::setOrganizationDomain("swift.im");
QCoreApplication::setApplicationVersion(buildVersion);
tabs_ = new QtChatTabs();
settings_ = new QtSettingsProvider();
application_ = new PlatformApplication("Swift");
treeWidgetFactory_ = new QtTreeWidgetFactory();
systemTray_ = new QtSystemTray();
loginWindowFactory_ = new QtLoginWindowFactory(splitter_, systemTray_, settings_);
chatWindowFactory_ = new QtChatWindowFactory(treeWidgetFactory_, splitter_, settings_, tabs_);
rosterWindowFactory_ = new QtMainWindowFactory(treeWidgetFactory_);
xmlConsoleWidgetFactory_ = new QtXMLConsoleWidgetFactory(tabs_);
soundPlayer_ = new QtSoundPlayer();
if (splitter_) {
splitter_->show();
}
mainController_ = new MainController(chatWindowFactory_, rosterWindowFactory_, loginWindowFactory_, treeWidgetFactory_, settings_, application_, systemTray_, soundPlayer_, xmlConsoleWidgetFactory_);
+
+ autoUpdater_ = PlatformAutoUpdaterFactory().createAutoUpdater(SWIFT_APPCAST_URL);
+ autoUpdater_->checkForUpdates();
}
QtSwift::~QtSwift() {
+ delete autoUpdater_;
delete chatWindowFactory_;
delete rosterWindowFactory_;
delete loginWindowFactory_;
delete treeWidgetFactory_;
delete mainController_;
delete settings_;
delete application_;
delete systemTray_;
delete splitter_;
delete soundPlayer_;
delete tabs_;
delete xmlConsoleWidgetFactory_;
}
}
diff --git a/Swift/QtUI/QtSwift.h b/Swift/QtUI/QtSwift.h
index ad113d6..0ba9926 100644
--- a/Swift/QtUI/QtSwift.h
+++ b/Swift/QtUI/QtSwift.h
@@ -1,46 +1,48 @@
#ifndef SWIFT_QtSwift_H
#define SWIFT_QtSwift_H
#include "Swiften/Base/String.h"
#include "Swiften/EventLoop/Qt/QtEventLoop.h"
#include "QtLoginWindowFactory.h"
#include "QtMainWindowFactory.h"
#include "QtChatWindowFactory.h"
#include "QtSettingsProvider.h"
class QSplitter;
namespace Swift {
+ class AutoUpdater;
class Application;
class MainController;
class QtChatWindowFactory;
class QtMainWindowFactory;
class QtLoginWindowFactory;
class QtTreeWidgetFactory;
class QtXMLConsoleWidgetFactory;
class QtSystemTray;
class QtSoundPlayer;
class QtSwift : public QObject {
Q_OBJECT
public:
QtSwift(bool netbookMode);
~QtSwift();
private:
MainController *mainController_;
QtTreeWidgetFactory *treeWidgetFactory_;
QtChatWindowFactory *chatWindowFactory_;
QtMainWindowFactory *rosterWindowFactory_;
QtLoginWindowFactory *loginWindowFactory_;
QtXMLConsoleWidgetFactory* xmlConsoleWidgetFactory_;
QtEventLoop clientMainThreadCaller_;
QtSettingsProvider *settings_;
QtSystemTray* systemTray_;
QSplitter* splitter_;
QtSoundPlayer* soundPlayer_;
QtChatTabs* tabs_;
Application* application_;
+ AutoUpdater* autoUpdater_;
};
}
#endif
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index f8de60e..3a9545c 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -1,124 +1,129 @@
import os, shutil, datetime
import Version
def generateDefaultTheme(env, target, source) :
- sourceDir = source[0].abspath
- output = open(target[0].abspath, "w")
- output.write("<RCC version =\"1.0\">")
- output.write("<qresource prefix=\"/themes/Default\">")
- for (path, dirs, files) in os.walk(sourceDir) :
- for file in files :
- filePath = os.path.join(path,file)
- output.write("<file alias=\"%(alias)s\">%(path)s</file>" % {
- "alias": filePath[len(sourceDir)+1:],
- "path": filePath
- })
- output.write("</qresource>")
- output.write("</RCC>")
+ sourceDir = source[0].abspath
+ output = open(target[0].abspath, "w")
+ output.write("<RCC version =\"1.0\">")
+ output.write("<qresource prefix=\"/themes/Default\">")
+ for (path, dirs, files) in os.walk(sourceDir) :
+ for file in files :
+ filePath = os.path.join(path,file)
+ output.write("<file alias=\"%(alias)s\">%(path)s</file>" % {
+ "alias": filePath[len(sourceDir)+1:],
+ "path": filePath
+ })
+ output.write("</qresource>")
+ output.write("</RCC>")
Import("env")
myenv = env.Clone()
myenv.MergeFlags(env["SWIFT_CONTROLLERS_FLAGS"])
myenv.MergeFlags(env["SWIFTOOLS_FLAGS"])
if myenv["HAVE_XSS"] :
myenv.MergeFlags(env["XSS_FLAGS"])
+if myenv["HAVE_SPARKLE"] :
+ myenv.MergeFlags(env["SPARKLE_FLAGS"])
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["ZLIB_FLAGS"])
myenv.MergeFlags(env["OPENSSL_FLAGS"])
myenv.MergeFlags(env.get("LIBXML_FLAGS", ""))
myenv.MergeFlags(env.get("EXPAT_FLAGS", ""))
myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"])
myenv.Tool("nsis", toolpath = ["#/BuildTools/SCons/Tools"])
myenv.EnableQt4Modules(['QtCore', 'QtGui', 'QtWebKit'], debug = False)
myenv.Append(CPPPATH = ["/usr/include/phonon"])
myenv.Append(CPPPATH = ["."])
if env["PLATFORM"] == "win32" :
- #myenv["LINKFLAGS"] = ["/SUBSYSTEM:CONSOLE"]
- myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
- myenv.Append(LIBS = "qtmain")
+ #myenv["LINKFLAGS"] = ["/SUBSYSTEM:CONSOLE"]
+ myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
+ myenv.Append(LIBS = "qtmain")
myenv.Command("DefaultTheme.qrc", "../resources/themes/Default", Action(generateDefaultTheme, cmdstr = "$GENCOMSTR"))
sources = [
- "main.cpp",
- "QtAboutWidget.cpp",
- "QtAddContactDialog.cpp",
- "QtChatWindow.cpp",
- "QtChatWindowFactory.cpp",
- "QtJoinMUCDialog.cpp",
- "QtLoginWindow.cpp",
- "QtLoginWindowFactory.cpp",
- "QtMainWindow.cpp",
- "QtMainWindowFactory.cpp",
- "QtSettingsProvider.cpp",
- "QtStatusWidget.cpp",
- "QtSwift.cpp",
- "QtChatView.cpp",
- "QtChatTabs.cpp",
- "QtSoundPlayer.cpp",
- "QtSystemTray.cpp",
- "QtTabbable.cpp",
- "QtTextEdit.cpp",
- "QtXMLConsoleWidgetFactory.cpp",
- "QtXMLConsoleWidget.cpp",
- "ChatSnippet.cpp",
- "MessageSnippet.cpp",
- "SystemMessageSnippet.cpp",
- "Roster/RosterModel.cpp",
- "Roster/QtTreeWidget.cpp",
- "Roster/QtTreeWidgetItem.cpp",
- "Roster/RosterDelegate.cpp",
- "EventViewer/EventView.cpp",
- "EventViewer/EventModel.cpp",
- "EventViewer/EventDelegate.cpp",
- "QtRosterHeader.cpp",
- "qrc_DefaultTheme.cc",
- "qrc_Swift.cc",
- ]
+ "main.cpp",
+ "QtAboutWidget.cpp",
+ "QtAddContactDialog.cpp",
+ "QtChatWindow.cpp",
+ "QtChatWindowFactory.cpp",
+ "QtJoinMUCDialog.cpp",
+ "QtLoginWindow.cpp",
+ "QtLoginWindowFactory.cpp",
+ "QtMainWindow.cpp",
+ "QtMainWindowFactory.cpp",
+ "QtSettingsProvider.cpp",
+ "QtStatusWidget.cpp",
+ "QtSwift.cpp",
+ "QtChatView.cpp",
+ "QtChatTabs.cpp",
+ "QtSoundPlayer.cpp",
+ "QtSystemTray.cpp",
+ "QtTabbable.cpp",
+ "QtTextEdit.cpp",
+ "QtXMLConsoleWidgetFactory.cpp",
+ "QtXMLConsoleWidget.cpp",
+ "ChatSnippet.cpp",
+ "MessageSnippet.cpp",
+ "SystemMessageSnippet.cpp",
+ "Roster/RosterModel.cpp",
+ "Roster/QtTreeWidget.cpp",
+ "Roster/QtTreeWidgetItem.cpp",
+ "Roster/RosterDelegate.cpp",
+ "EventViewer/EventView.cpp",
+ "EventViewer/EventModel.cpp",
+ "EventViewer/EventDelegate.cpp",
+ "QtRosterHeader.cpp",
+ "qrc_DefaultTheme.cc",
+ "qrc_Swift.cc",
+ ]
myenv.BuildVersion("BuildVersion.h", version = env["SWIFT_VERSION"])
if env["PLATFORM"] == "win32" :
- myenv.RES("../resources/Windows/Swift.rc")
- sources += ["../resources/Windows/Swift.res"]
+ myenv.RES("../resources/Windows/Swift.rc")
+ sources += ["../resources/Windows/Swift.res"]
if env["PLATFORM"] == "darwin" or env["PLATFORM"] == "win32" :
- swiftProgram = myenv.Program("Swift", sources)
+ swiftProgram = myenv.Program("Swift", sources)
else :
- swiftProgram = myenv.Program("swift", sources)
+ swiftProgram = myenv.Program("swift", sources)
myenv.Uic4("QtJoinMUCDialog.ui")
myenv.Uic4("QtAddContactDialog.ui")
myenv.Qrc("DefaultTheme.qrc")
myenv.Qrc("Swift.qrc")
if env["PLATFORM"] == "darwin" :
- myenv.AppBundle("Swift", version = env["SWIFT_VERSION"], resources = ["../resources/MacOSX/Swift.icns"])
+ frameworks = []
+ if env["HAVE_SPARKLE"] :
+ frameworks.append(env["SPARKLE_FRAMEWORK"])
+ myenv.AppBundle("Swift", version = env["SWIFT_VERSION"], resources = ["../resources/MacOSX/Swift.icns"], frameworks = frameworks)
if env.get("SWIFT_INSTALLDIR", "") :
- env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram)
+ env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram)
if env["PLATFORM"] == "win32" :
- if "dist" in COMMAND_LINE_TARGETS or env.GetOption("clean") :
- myenv.WindowsBundle("Swift", resources = [
- os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),
- os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),
- ],
- qtimageformats = ["gif", "ico", "jpeg", "mng", "svg", "tiff"],
- qtlibs = ["QtCore4", "QtGui4", "QtNetwork4", "QtWebKit4", "phonon4"])
-
- myenv.Append(NSIS_OPTIONS = [
- "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",
- "/DbuildVersion=" + env["SWIFT_VERSION"]
- ])
- myenv.Nsis("../Packaging/nsis/swift.nsi")
+ if "dist" in COMMAND_LINE_TARGETS or env.GetOption("clean") :
+ myenv.WindowsBundle("Swift", resources = [
+ os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),
+ os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),
+ ],
+ qtimageformats = ["gif", "ico", "jpeg", "mng", "svg", "tiff"],
+ qtlibs = ["QtCore4", "QtGui4", "QtNetwork4", "QtWebKit4", "phonon4"])
+
+ myenv.Append(NSIS_OPTIONS = [
+ "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",
+ "/DbuildVersion=" + env["SWIFT_VERSION"]
+ ])
+ myenv.Nsis("../Packaging/nsis/swift.nsi")
diff --git a/Swift/QtUI/main.cpp b/Swift/QtUI/main.cpp
index a7a715c..b76acfa 100644
--- a/Swift/QtUI/main.cpp
+++ b/Swift/QtUI/main.cpp
@@ -1,11 +1,10 @@
#include <QApplication>
#include "QtSwift.h"
-int main(int argc, char* argv[])
-{
+int main(int argc, char* argv[]) {
QApplication app(argc, argv);
bool netbookMode = argc > 1;
Swift::QtSwift swift(netbookMode);
return app.exec();
}
diff --git a/Swiften/Application/MacOSX/MacOSXApplication.h b/Swiften/Application/MacOSX/MacOSXApplication.h
index e408ffd..cd5e69f 100644
--- a/Swiften/Application/MacOSX/MacOSXApplication.h
+++ b/Swiften/Application/MacOSX/MacOSXApplication.h
@@ -1,23 +1,25 @@
#ifndef SWIFTEN_MacOSXApplication_H
#define SWIFTEN_MacOSXApplication_H
#include "Swiften/Application/Application.h"
#include "Swiften/Application/MacOSX/MacOSXApplicationMessageDisplay.h"
+#include "Swiften/Application/MacOSX/MacOSXApplicationInitializer.h"
namespace Swift {
class ApplicationMessageDisplay;
class MacOSXApplication : public Application {
public:
MacOSXApplication(const String& name);
virtual boost::filesystem::path getHomeDir() const;
virtual ApplicationMessageDisplay* getApplicationMessageDisplay();
boost::filesystem::path getSettingsDir() const;
private:
+ MacOSXApplicationInitializer initializer_;
MacOSXApplicationMessageDisplay messageDisplay_;
};
}
#endif
diff --git a/Swiften/Application/SConscript b/Swiften/Application/SConscript
index d13b63b..7696bd7 100644
--- a/Swiften/Application/SConscript
+++ b/Swiften/Application/SConscript
@@ -1,15 +1,16 @@
Import("swiften_env")
sources = [
"Application.cpp",
"ApplicationMessageDisplay.cpp",
]
if swiften_env["PLATFORM"] == "darwin" :
sources += [
"MacOSX/MacOSXApplication.cpp",
- "MacOSX/MacOSXApplicationMessageDisplay.mm"
+ "MacOSX/MacOSXApplicationMessageDisplay.mm",
+ "MacOSX/MacOSXApplicationInitializer.mm",
]
objects = swiften_env.StaticObject(sources)
swiften_env.Append(SWIFTEN_OBJECTS = [objects])