summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/SConscript')
-rw-r--r--Swift/QtUI/SConscript682
1 files changed, 345 insertions, 337 deletions
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index c8313c2..88cb1ac 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -1,21 +1,21 @@
import os, datetime, re, time
import Version
-def generateDefaultTheme(dir) :
- sourceDir = dir.abspath
- result = "<!-- WARNING: This file is automatically generated. Any changes will be overwritten. -->\n"
- result += "<RCC version =\"1.0\">"
- result += "<qresource prefix=\"/themes/Default\">"
- for (path, dirs, files) in os.walk(sourceDir) :
- for file in files :
- 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
+def generateQRCTheme(dir, prefix) :
+ sourceDir = dir.abspath
+ result = "<!-- WARNING: This file is automatically generated. Any changes will be overwritten. -->\n"
+ result += "<RCC version =\"1.0\">"
+ result += "<qresource prefix=\"/themes/" + prefix + "\">"
+ for (path, dirs, files) in os.walk(sourceDir) :
+ for file in files :
+ 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")
@@ -24,33 +24,30 @@ myenv = env.Clone()
# Disable warnings that affect Qt
myenv["CXXFLAGS"] = filter(lambda x : x != "-Wfloat-equal", myenv["CXXFLAGS"])
if "clang" in env["CC"] :
- myenv.Append(CXXFLAGS = ["-Wno-float-equal", "-Wno-shorten-64-to-32", "-Wno-missing-prototypes", "-Wno-unreachable-code", "-Wno-disabled-macro-expansion", "-Wno-unused-private-field", "-Wno-extra-semi", "-Wno-duplicate-enum", "-Wno-missing-variable-declarations", "-Wno-conversion", "-Wno-undefined-reinterpret-cast"])
+ myenv.Append(CXXFLAGS = ["-Wno-float-equal", "-Wno-shorten-64-to-32", "-Wno-missing-prototypes", "-Wno-unreachable-code", "-Wno-disabled-macro-expansion", "-Wno-unused-private-field", "-Wno-extra-semi", "-Wno-duplicate-enum", "-Wno-missing-variable-declarations", "-Wno-conversion", "-Wno-undefined-reinterpret-cast"])
myenv.UseFlags(env["SWIFT_CONTROLLERS_FLAGS"])
myenv.UseFlags(env["SWIFTOOLS_FLAGS"])
if myenv["HAVE_XSS"] :
- myenv.UseFlags(env["XSS_FLAGS"])
+ myenv.UseFlags(env["XSS_FLAGS"])
if env["PLATFORM"] == "posix" :
- myenv.Append(LIBS = ["X11"])
+ myenv.Append(LIBS = ["X11"])
if myenv["HAVE_SPARKLE"] :
- myenv.UseFlags(env["SPARKLE_FLAGS"])
+ myenv.UseFlags(env["SPARKLE_FLAGS"])
myenv.UseFlags(env["SWIFTEN_FLAGS"])
myenv.UseFlags(env["SWIFTEN_DEP_FLAGS"])
if myenv.get("HAVE_BREAKPAD") :
- myenv.UseFlags(env["BREAKPAD_FLAGS"])
+ myenv.UseFlags(env["BREAKPAD_FLAGS"])
if myenv.get("HAVE_GROWL", False) :
- myenv.UseFlags(myenv["GROWL_FLAGS"])
- myenv.Append(CPPDEFINES = ["HAVE_GROWL"])
+ 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.Append(CPPDEFINES = ["SWIFT_MOBILE"])
if myenv.get("HAVE_HUNSPELL", True):
- myenv.Append(CPPDEFINES = ["HAVE_HUNSPELL"])
- myenv.UseFlags(myenv["HUNSPELL_FLAGS"])
+ myenv.Append(CPPDEFINES = ["HAVE_HUNSPELL"])
+ myenv.UseFlags(myenv["HUNSPELL_FLAGS"])
if env["PLATFORM"] == "win32" :
- myenv.Append(LIBS = ["cryptui"])
+ myenv.Append(LIBS = ["cryptui"])
myenv.UseFlags(myenv["PLATFORM_FLAGS"])
myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"])
@@ -59,16 +56,18 @@ myenv.Tool("wix", toolpath = ["#/BuildTools/SCons/Tools"])
myenv.Tool("textfile", toolpath = ["#/BuildTools/SCons/Tools"])
qt4modules = ['QtCore', 'QtWebKit', 'QtGui']
if myenv["qt5"] :
- qt_version = '5'
- qt4modules += ['QtWidgets', 'QtWebKitWidgets', 'QtMultimedia']
- if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :
- qt4modules += ['QtX11Extras']
+ qt_version = '5'
+ # QtSvg is required so the image format plugin for SVG images is installed
+ # correctly by Qt's deployment tools.
+ qt4modules += ['QtWidgets', 'QtWebKitWidgets', 'QtMultimedia', 'QtSvg']
+ if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :
+ qt4modules += ['QtX11Extras']
else :
- qt_version = '4'
+ qt_version = '4'
if env["PLATFORM"] == "posix" :
- qt4modules += ["QtDBus"]
+ qt4modules += ["QtDBus"]
if env["PLATFORM"] != "win32" and env["PLATFORM"] != "darwin" :
- qt4modules += ["QtNetwork"]
+ qt4modules += ["QtNetwork"]
myenv.EnableQt4Modules(qt4modules, debug = False, version = qt_version)
@@ -76,167 +75,170 @@ myenv.Append(CPPPATH = ["."])
# Qt requires applications to be build with the -fPIC flag on some 32-bit Linux distributions.
if env["PLATFORM"] == "posix" :
- testEnv = myenv.Clone()
- conf = Configure(testEnv)
- if conf.CheckDeclaration("QT_REDUCE_RELOCATIONS", "#include <QtCore/qconfig.h>") and conf.CheckDeclaration("__i386__"):
- myenv.AppendUnique(CXXFLAGS = "-fPIC")
- testEnv = conf.Finish()
+ testEnv = myenv.Clone()
+ conf = Configure(testEnv)
+ if conf.CheckDeclaration("QT_REDUCE_RELOCATIONS", "#include <QtCore/qconfig.h>") and conf.CheckDeclaration("__i386__"):
+ myenv.AppendUnique(CXXFLAGS = "-fPIC")
+ testEnv = conf.Finish()
if env["PLATFORM"] == "win32" :
- #myenv.Append(LINKFLAGS = ["/SUBSYSTEM:CONSOLE"])
- myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
- myenv.Append(LIBS = "qtmain")
- if myenv.get("HAVE_SCHANNEL", 0) :
- myenv.Append(LIBS = "Cryptui")
- myenv.Append(CPPDEFINES = "HAVE_SCHANNEL")
- if env["debug"] and not env["optimize"]:
- myenv.Append(LINKFLAGS = ["/NODEFAULTLIB:msvcrt"])
+ #myenv.Append(LINKFLAGS = ["/SUBSYSTEM:CONSOLE"])
+ myenv.Append(LINKFLAGS = ["/SUBSYSTEM:WINDOWS"])
+ myenv.Append(LIBS = "qtmain")
+ if myenv.get("HAVE_SCHANNEL", 0) :
+ myenv.Append(LIBS = "Cryptui")
+ myenv.Append(CPPDEFINES = "HAVE_SCHANNEL")
-myenv.WriteVal("DefaultTheme.qrc", myenv.Value(generateDefaultTheme(myenv.Dir("#/Swift/resources/themes/Default"))))
+if env["PLATFORM"] == "darwin" and env["HAVE_SPARKLE"] :
+ myenv.Append(LINKFLAGS = ["-Wl,-rpath,@loader_path/../Frameworks"])
+
+myenv.WriteVal("DefaultTheme.qrc", myenv.Value(generateQRCTheme(myenv.Dir("#/Swift/resources/themes/Default"), "Default")))
sources = [
- "main.cpp",
- "QtAboutWidget.cpp",
- "QtSpellCheckerWindow.cpp",
- "QtAvatarWidget.cpp",
- "QtUIFactory.cpp",
- "QtChatWindowFactory.cpp",
- "QtClickableLabel.cpp",
- "QtLoginWindow.cpp",
- "QtMainWindow.cpp",
- "QtProfileWindow.cpp",
- "QtBlockListEditorWindow.cpp",
- "QtNameWidget.cpp",
- "QtSettingsProvider.cpp",
- "QtStatusWidget.cpp",
- "QtScaledAvatarCache.cpp",
- "QtSwift.cpp",
- "QtURIHandler.cpp",
- "QtChatWindow.cpp",
- "QtChatView.cpp",
- "QtWebKitChatView.cpp",
- "QtPlainChatView.cpp",
- "QtChatTheme.cpp",
- "QtChatTabs.cpp",
- "QtChatTabsBase.cpp",
- "QtChatTabsShortcutOnlySubstitute.cpp",
- "QtSoundPlayer.cpp",
- "QtSystemTray.cpp",
- "QtCachedImageScaler.cpp",
- "QtTabbable.cpp",
- "QtTabWidget.cpp",
- "QtTextEdit.cpp",
- "QtXMLConsoleWidget.cpp",
- "QtHistoryWindow.cpp",
- "QtFileTransferListWidget.cpp",
- "QtFileTransferListItemModel.cpp",
- "QtAdHocCommandWindow.cpp",
- "QtAdHocCommandWithJIDWindow.cpp",
- "QtUtilities.cpp",
- "QtBookmarkDetailWindow.cpp",
- "QtAddBookmarkWindow.cpp",
- "QtEditBookmarkWindow.cpp",
- "QtEmoticonsGrid.cpp",
- "QtEmoticonCell.cpp",
- "QtContactEditWindow.cpp",
- "QtContactEditWidget.cpp",
- "QtSingleWindow.cpp",
- "QtHighlightEditor.cpp",
- "QtColorToolButton.cpp",
- "QtClosableLineEdit.cpp",
- "ChatSnippet.cpp",
- "MessageSnippet.cpp",
- "SystemMessageSnippet.cpp",
- "QtElidingLabel.cpp",
- "QtFormWidget.cpp",
- "QtFormResultItemModel.cpp",
- "QtLineEdit.cpp",
- "QtJoinMUCWindow.cpp",
- "QtConnectionSettingsWindow.cpp",
- "Roster/RosterModel.cpp",
- "Roster/QtTreeWidget.cpp",
-# "Roster/QtTreeWidgetItem.cpp",
- "Roster/RosterDelegate.cpp",
- "Roster/GroupItemDelegate.cpp",
- "Roster/DelegateCommons.cpp",
- "Roster/QtFilterWidget.cpp",
- "Roster/QtRosterWidget.cpp",
- "Roster/QtOccupantListWidget.cpp",
- "Roster/RosterTooltip.cpp",
- "EventViewer/EventModel.cpp",
- "EventViewer/EventDelegate.cpp",
- "EventViewer/TwoLineDelegate.cpp",
- "EventViewer/QtEventWindow.cpp",
- "EventViewer/QtEvent.cpp",
- "ChatList/QtChatListWindow.cpp",
- "ChatList/ChatListModel.cpp",
- "ChatList/ChatListDelegate.cpp",
- "ChatList/ChatListMUCItem.cpp",
- "ChatList/ChatListRecentItem.cpp",
- "ChatList/ChatListWhiteboardItem.cpp",
- "MUCSearch/QtMUCSearchWindow.cpp",
- "MUCSearch/MUCSearchModel.cpp",
- "MUCSearch/MUCSearchRoomItem.cpp",
- "MUCSearch/MUCSearchEmptyItem.cpp",
- "MUCSearch/MUCSearchDelegate.cpp",
- "UserSearch/ContactListDelegate.cpp",
- "UserSearch/ContactListModel.cpp",
- "UserSearch/QtContactListWidget.cpp",
- "UserSearch/QtSuggestingJIDInput.cpp",
- "UserSearch/QtUserSearchFirstPage.cpp",
- "UserSearch/QtUserSearchFirstMultiJIDPage.cpp",
- "UserSearch/QtUserSearchFieldsPage.cpp",
- "UserSearch/QtUserSearchResultsPage.cpp",
- "UserSearch/QtUserSearchDetailsPage.cpp",
- "UserSearch/QtUserSearchWindow.cpp",
- "UserSearch/UserSearchModel.cpp",
- "UserSearch/UserSearchDelegate.cpp",
- "Whiteboard/FreehandLineItem.cpp",
- "Whiteboard/GView.cpp",
- "Whiteboard/TextDialog.cpp",
- "Whiteboard/QtWhiteboardWindow.cpp",
- "Whiteboard/ColorWidget.cpp",
- "QtSubscriptionRequestWindow.cpp",
- "QtRosterHeader.cpp",
- "QtWebView.cpp",
- "qrc_DefaultTheme.cc",
- "qrc_Swift.cc",
- "QtChatWindowJSBridge.cpp",
- "QtMUCConfigurationWindow.cpp",
- "QtAffiliationEditor.cpp",
- "QtUISettingConstants.cpp",
- "QtURLValidator.cpp",
- "QtResourceHelper.cpp",
- "QtSpellCheckHighlighter.cpp",
- "Trellis/QtDynamicGridLayout.cpp",
- "Trellis/QtDNDTabBar.cpp",
- "Trellis/QtGridSelectionDialog.cpp"
+ "main.cpp",
+ "QtAboutWidget.cpp",
+ "QtSpellCheckerWindow.cpp",
+ "QtAvatarWidget.cpp",
+ "QtUIFactory.cpp",
+ "QtChatWindowFactory.cpp",
+ "QtClickableLabel.cpp",
+ "QtLoginWindow.cpp",
+ "QtMainWindow.cpp",
+ "QtProfileWindow.cpp",
+ "QtBlockListEditorWindow.cpp",
+ "QtNameWidget.cpp",
+ "QtSettingsProvider.cpp",
+ "QtStatusWidget.cpp",
+ "QtScaledAvatarCache.cpp",
+ "QtSwift.cpp",
+ "QtURIHandler.cpp",
+ "QtChatWindow.cpp",
+ "QtChatView.cpp",
+ "QtWebKitChatView.cpp",
+ "QtPlainChatView.cpp",
+ "QtChatTheme.cpp",
+ "QtChatTabs.cpp",
+ "QtChatTabsBase.cpp",
+ "QtChatTabsShortcutOnlySubstitute.cpp",
+ "QtSoundPlayer.cpp",
+ "QtSystemTray.cpp",
+ "QtCachedImageScaler.cpp",
+ "QtTabbable.cpp",
+ "QtTabWidget.cpp",
+ "QtTextEdit.cpp",
+ "QtXMLConsoleWidget.cpp",
+ "QtHistoryWindow.cpp",
+ "QtFileTransferListWidget.cpp",
+ "QtFileTransferListItemModel.cpp",
+ "QtAdHocCommandWindow.cpp",
+ "QtAdHocCommandWithJIDWindow.cpp",
+ "QtUtilities.cpp",
+ "QtBookmarkDetailWindow.cpp",
+ "QtAddBookmarkWindow.cpp",
+ "QtEditBookmarkWindow.cpp",
+ "QtEmoticonsGrid.cpp",
+ "QtEmoticonCell.cpp",
+ "QtContactEditWindow.cpp",
+ "QtContactEditWidget.cpp",
+ "QtSingleWindow.cpp",
+ "QtHighlightEditor.cpp",
+ "QtColorToolButton.cpp",
+ "QtClosableLineEdit.cpp",
+ "ChatSnippet.cpp",
+ "MessageSnippet.cpp",
+ "SystemMessageSnippet.cpp",
+ "QtElidingLabel.cpp",
+ "QtFormWidget.cpp",
+ "QtFormResultItemModel.cpp",
+ "QtLineEdit.cpp",
+ "QtJoinMUCWindow.cpp",
+ "QtConnectionSettingsWindow.cpp",
+ "Roster/RosterModel.cpp",
+ "Roster/QtTreeWidget.cpp",
+ "Roster/RosterDelegate.cpp",
+ "Roster/GroupItemDelegate.cpp",
+ "Roster/DelegateCommons.cpp",
+ "Roster/QtFilterWidget.cpp",
+ "Roster/QtRosterWidget.cpp",
+ "Roster/QtOccupantListWidget.cpp",
+ "Roster/RosterTooltip.cpp",
+ "EventViewer/EventModel.cpp",
+ "EventViewer/EventDelegate.cpp",
+ "EventViewer/TwoLineDelegate.cpp",
+ "EventViewer/QtEventWindow.cpp",
+ "EventViewer/QtEvent.cpp",
+ "ChatList/QtChatListWindow.cpp",
+ "ChatList/ChatListModel.cpp",
+ "ChatList/ChatListDelegate.cpp",
+ "ChatList/ChatListMUCItem.cpp",
+ "ChatList/ChatListRecentItem.cpp",
+ "ChatList/ChatListWhiteboardItem.cpp",
+ "MUCSearch/MUCSearchDelegate.cpp",
+ "MUCSearch/MUCSearchEmptyItem.cpp",
+ "MUCSearch/MUCSearchModel.cpp",
+ "MUCSearch/MUCSearchRoomItem.cpp",
+ "MUCSearch/MUCSearchServiceItem.cpp",
+ "MUCSearch/QtLeafSortFilterProxyModel.cpp",
+ "MUCSearch/QtMUCSearchWindow.cpp",
+ "UserSearch/ContactListDelegate.cpp",
+ "UserSearch/ContactListModel.cpp",
+ "UserSearch/QtContactListWidget.cpp",
+ "UserSearch/QtSuggestingJIDInput.cpp",
+ "UserSearch/QtUserSearchFirstPage.cpp",
+ "UserSearch/QtUserSearchFirstMultiJIDPage.cpp",
+ "UserSearch/QtUserSearchFieldsPage.cpp",
+ "UserSearch/QtUserSearchResultsPage.cpp",
+ "UserSearch/QtUserSearchDetailsPage.cpp",
+ "UserSearch/QtUserSearchWindow.cpp",
+ "UserSearch/UserSearchModel.cpp",
+ "UserSearch/UserSearchDelegate.cpp",
+ "Whiteboard/FreehandLineItem.cpp",
+ "Whiteboard/GView.cpp",
+ "Whiteboard/TextDialog.cpp",
+ "Whiteboard/QtWhiteboardWindow.cpp",
+ "Whiteboard/ColorWidget.cpp",
+ "QtSubscriptionRequestWindow.cpp",
+ "QtRosterHeader.cpp",
+ "QtWebView.cpp",
+ "qrc_DefaultTheme.cc",
+ "qrc_Swift.cc",
+ "QtChatWindowJSBridge.cpp",
+ "QtMUCConfigurationWindow.cpp",
+ "QtAffiliationEditor.cpp",
+ "QtUISettingConstants.cpp",
+ "QtURLValidator.cpp",
+ "QtResourceHelper.cpp",
+ "QtSpellCheckHighlighter.cpp",
+ "QtUpdateFeedSelectionDialog.cpp",
+ "Trellis/QtDynamicGridLayout.cpp",
+ "Trellis/QtDNDTabBar.cpp",
+ "Trellis/QtGridSelectionDialog.cpp"
]
if env["PLATFORM"] == "win32" :
- sources.extend(["qrc_SwiftWindows.cc"])
+ sources.extend(["qrc_SwiftWindows.cc"])
# QtVCardWidget
sources.extend([
- "QtVCardWidget/QtCloseButton.cpp",
- "QtVCardWidget/QtRemovableItemDelegate.cpp",
- "QtVCardWidget/QtResizableLineEdit.cpp",
- "QtVCardWidget/QtTagComboBox.cpp",
- "QtVCardWidget/QtVCardHomeWork.cpp",
- "QtVCardWidget/QtVCardAddressField.cpp",
- "QtVCardWidget/QtVCardAddressLabelField.cpp",
- "QtVCardWidget/QtVCardBirthdayField.cpp",
- "QtVCardWidget/QtVCardDescriptionField.cpp",
- "QtVCardWidget/QtVCardInternetEMailField.cpp",
- "QtVCardWidget/QtVCardJIDField.cpp",
- "QtVCardWidget/QtVCardOrganizationField.cpp",
- "QtVCardWidget/QtVCardPhotoAndNameFields.cpp",
- "QtVCardWidget/QtVCardRoleField.cpp",
- "QtVCardWidget/QtVCardTelephoneField.cpp",
- "QtVCardWidget/QtVCardTitleField.cpp",
- "QtVCardWidget/QtVCardURLField.cpp",
- "QtVCardWidget/QtVCardGeneralField.cpp",
- "QtVCardWidget/QtVCardWidget.cpp"
+ "QtVCardWidget/QtCloseButton.cpp",
+ "QtVCardWidget/QtRemovableItemDelegate.cpp",
+ "QtVCardWidget/QtResizableLineEdit.cpp",
+ "QtVCardWidget/QtTagComboBox.cpp",
+ "QtVCardWidget/QtVCardHomeWork.cpp",
+ "QtVCardWidget/QtVCardAddressField.cpp",
+ "QtVCardWidget/QtVCardAddressLabelField.cpp",
+ "QtVCardWidget/QtVCardBirthdayField.cpp",
+ "QtVCardWidget/QtVCardDescriptionField.cpp",
+ "QtVCardWidget/QtVCardInternetEMailField.cpp",
+ "QtVCardWidget/QtVCardJIDField.cpp",
+ "QtVCardWidget/QtVCardOrganizationField.cpp",
+ "QtVCardWidget/QtVCardPhotoAndNameFields.cpp",
+ "QtVCardWidget/QtVCardRoleField.cpp",
+ "QtVCardWidget/QtVCardTelephoneField.cpp",
+ "QtVCardWidget/QtVCardTitleField.cpp",
+ "QtVCardWidget/QtVCardURLField.cpp",
+ "QtVCardWidget/QtVCardGeneralField.cpp",
+ "QtVCardWidget/QtVCardWidget.cpp"
])
myenv.Uic4("QtVCardWidget/QtVCardPhotoAndNameFields.ui")
@@ -247,52 +249,52 @@ myenv.Uic4("QtProfileWindow.ui")
# Determine the version
myenv["SWIFT_VERSION"] = Version.getBuildVersion(env.Dir("#").abspath, "swift")
if env["PLATFORM"] == "win32" :
- swift_windows_version = Version.convertToWindowsVersion(myenv["SWIFT_VERSION"])
- myenv["SWIFT_VERSION_MAJOR"] = swift_windows_version[0]
- myenv["SWIFT_VERSION_MINOR"] = swift_windows_version[1]
- myenv["SWIFT_VERSION_PATCH"] = swift_windows_version[2]
+ swift_windows_version = Version.convertToWindowsVersion(myenv["SWIFT_VERSION"])
+ myenv["SWIFT_VERSION_MAJOR"] = swift_windows_version[0]
+ myenv["SWIFT_VERSION_MINOR"] = swift_windows_version[1]
+ myenv["SWIFT_VERSION_PATCH"] = swift_windows_version[2]
if env["PLATFORM"] == "win32" :
- res_env = myenv.Clone()
- res_env.Append(CPPDEFINES = [
- ("SWIFT_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])),
- ("SWIFT_VERSION_MAJOR", "${SWIFT_VERSION_MAJOR}"),
- ("SWIFT_VERSION_MINOR", "${SWIFT_VERSION_MINOR}"),
- ("SWIFT_VERSION_PATCH", "${SWIFT_VERSION_PATCH}"),
- ])
- res = res_env.RES("#/Swift/resources/Windows/Swift.rc")
- # For some reason, SCons isn't picking up the dependency correctly
- # Adding it explicitly until i figure out why
- myenv.Depends(res, "../Controllers/BuildVersion.h")
- sources += [
- "WinUIHelpers.cpp",
- "CAPICertificateSelector.cpp",
- "WindowsNotifier.cpp",
- "#/Swift/resources/Windows/Swift.res"
- ]
+ res_env = myenv.Clone()
+ res_env.Append(CPPDEFINES = [
+ ("SWIFT_COPYRIGHT_YEAR", "\"\\\"2010-%s\\\"\"" % str(time.localtime()[0])),
+ ("SWIFT_VERSION_MAJOR", "${SWIFT_VERSION_MAJOR}"),
+ ("SWIFT_VERSION_MINOR", "${SWIFT_VERSION_MINOR}"),
+ ("SWIFT_VERSION_PATCH", "${SWIFT_VERSION_PATCH}"),
+ ])
+ res = res_env.RES("#/Swift/resources/Windows/Swift.rc")
+ # For some reason, SCons isn't picking up the dependency correctly
+ # Adding it explicitly until i figure out why
+ myenv.Depends(res, "../Controllers/BuildVersion.h")
+ sources += [
+ "WinUIHelpers.cpp",
+ "CAPICertificateSelector.cpp",
+ "WindowsNotifier.cpp",
+ "#/Swift/resources/Windows/Swift.res"
+ ]
if env["PLATFORM"] == "posix" :
- sources += [
- "FreeDesktopNotifier.cpp",
- "QtDBUSURIHandler.cpp",
- ]
+ sources += [
+ "FreeDesktopNotifier.cpp",
+ "QtDBUSURIHandler.cpp",
+ ]
if env["PLATFORM"] == "darwin" :
- sources += ["CocoaApplicationActivateHelper.mm"]
- sources += ["CocoaUIHelpers.mm"]
+ sources += ["CocoaApplicationActivateHelper.mm"]
+ sources += ["CocoaUIHelpers.mm"]
if env["PLATFORM"] == "darwin" or env["PLATFORM"] == "win32" :
- swiftProgram = myenv.Program("Swift", sources)
+ swiftProgram = myenv.Program("Swift", sources)
else :
- sources += ["QtCertificateViewerDialog.cpp"];
- myenv.Uic4("QtCertificateViewerDialog.ui");
- swiftProgram = myenv.Program("swift-im", sources)
+ sources += ["QtCertificateViewerDialog.cpp"];
+ myenv.Uic4("QtCertificateViewerDialog.ui");
+ swiftProgram = myenv.Program("swift-im", sources)
if env["PLATFORM"] != "darwin" and env["PLATFORM"] != "win32" :
- openURIProgram = myenv.Program("swift-open-uri", "swift-open-uri.cpp")
+ openURIProgram = myenv.Program("swift-open-uri", "swift-open-uri.cpp")
else :
- openURIProgram = []
+ openURIProgram = []
myenv.Uic4("MUCSearch/QtMUCSearchWindow.ui")
myenv.Uic4("UserSearch/QtUserSearchWizard.ui")
@@ -308,15 +310,16 @@ myenv.Uic4("QtConnectionSettings.ui")
myenv.Uic4("QtHighlightEditor.ui")
myenv.Uic4("QtBlockListEditorWindow.ui")
myenv.Uic4("QtSpellCheckerWindow.ui")
+myenv.Uic4("QtUpdateFeedSelectionDialog.ui")
myenv.Qrc("DefaultTheme.qrc")
myenv.Qrc("Swift.qrc")
if env["PLATFORM"] == "win32" :
- myenv.Qrc("SwiftWindows.qrc")
+ myenv.Qrc("SwiftWindows.qrc")
# Resources
commonResources = {
- "": ["#/Swift/resources/sounds"]
+ "": ["#/Swift/resources/sounds"]
}
myenv["TEXTFILESUFFIX"] = ""
@@ -329,138 +332,143 @@ myenv.MyTextfile(target = "COPYING", source = [myenv.File("../../COPYING.gpl"),
# Collect available languages
translation_languages = []
for file in os.listdir(Dir("#/Swift/Translations").abspath) :
- if file.startswith("swift_") and file.endswith(".ts") :
- translation_languages.append(file[6:-3])
+ if file.startswith("swift_") and file.endswith(".ts") :
+ translation_languages.append(file[6:-3])
# Generate translation modules
translation_sources = [env.File("#/Swift/Translations/swift.ts").abspath]
translation_modules = []
for lang in translation_languages :
- translation_resource = "#/Swift/resources/translations/swift_" + lang + ".qm"
- translation_source = "#/Swift/Translations/swift_" + lang + ".ts"
- translation_sources.append(env.File(translation_source).abspath)
- translation_modules.append(env.File(translation_resource).abspath)
- myenv.Qm(translation_resource, translation_source)
- commonResources["translations"] = commonResources.get("translations", []) + [translation_resource]
+ translation_resource = "#/Swift/resources/translations/swift_" + lang + ".qm"
+ translation_source = "#/Swift/Translations/swift_" + lang + ".ts"
+ translation_sources.append(env.File(translation_source).abspath)
+ translation_modules.append(env.File(translation_resource).abspath)
+ myenv.Qm(translation_resource, translation_source)
+ commonResources["translations"] = commonResources.get("translations", []) + [translation_resource]
# LUpdate translation (if requested)
if ARGUMENTS.get("update_translations", False) :
- myenv.Precious(translation_sources)
- remove_obsolete_option = ""
- codecfortr = ""
- if ARGUMENTS.get("remove_obsolete_translations", False) :
- remove_obsolete_option = " -no-obsolete"
- if qt_version == '4':
- codecfortr = "-codecfortr UTF-8"
- for translation_source in filter(lambda x: not x.endswith("_en.ts"), translation_sources) :
- t = myenv.Command([translation_source], [], [myenv.Action("$QT4_LUPDATE -I " + env.Dir("#").abspath + remove_obsolete_option + " -silent " + codecfortr + " -recursive Swift -ts " + translation_source, cmdstr = "$QT4_LUPDATECOMSTR")])
- myenv.AlwaysBuild(t)
+ myenv.Precious(translation_sources)
+ remove_obsolete_option = ""
+ codecfortr = ""
+ if ARGUMENTS.get("remove_obsolete_translations", False) :
+ remove_obsolete_option = " -no-obsolete"
+ if qt_version == '4':
+ codecfortr = "-codecfortr UTF-8"
+ for translation_source in filter(lambda x: not x.endswith("_en.ts"), translation_sources) :
+ t = myenv.Command([translation_source], [], [myenv.Action("$QT4_LUPDATE -I " + env.Dir("#").abspath + remove_obsolete_option + " -silent " + codecfortr + " -recursive Swift -ts " + translation_source, cmdstr = "$QT4_LUPDATECOMSTR")])
+ myenv.AlwaysBuild(t)
# NSIS installation script
if env["PLATFORM"] == "win32" :
- nsis_translation_install_script = ""
- nsis_translation_uninstall_script = ""
- for lang in translation_languages :
- nsis_translation_install_script += "File \"..\\..\\QtUI\\Swift\\translations\\swift_" + lang + ".qm\"\n"
- nsis_translation_uninstall_script += "delete $INSTDIR\\translations\\swift_" + lang + ".qm\n"
- myenv.WriteVal("../Packaging/nsis/translations-install.nsh", myenv.Value(nsis_translation_install_script))
- myenv.WriteVal("../Packaging/nsis/translations-uninstall.nsh", myenv.Value(nsis_translation_uninstall_script))
-
+ nsis_translation_install_script = ""
+ nsis_translation_uninstall_script = ""
+ for lang in translation_languages :
+ nsis_translation_install_script += "File \"..\\..\\QtUI\\Swift\\translations\\swift_" + lang + ".qm\"\n"
+ nsis_translation_uninstall_script += "delete $INSTDIR\\translations\\swift_" + lang + ".qm\n"
+ myenv.WriteVal("../Packaging/nsis/translations-install.nsh", myenv.Value(nsis_translation_install_script))
+ 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(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dmg"], [app], ["Swift/Packaging/MacOSX/package.sh " + app.path + " Swift/Packaging/MacOSX/Swift.dmg.gz $TARGET $QTDIR"])
- dsym = myenv.Command(["Swift-${SWIFT_VERSION}.dSYM"], ["Swift"], ["dsymutil -o ${TARGET} ${SOURCE}"])
- myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dSYM.zip"], dsym, ["cd ${SOURCE.dir} && zip -r ${TARGET.abspath} ${SOURCE.name}"])
+ 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, sparklePublicDSAKey = myenv["SWIFT_SPARKLE_PUBLIC_DSA_KEY"])
+ if env["DIST"] :
+ myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dmg"], [app], ["Swift/Packaging/MacOSX/package.sh " + app.path + " Swift/Packaging/MacOSX/Swift.dmg.gz $TARGET $QTDIR " + "\"$CODE_SIGN_IDENTITY\""])
+ dsym = myenv.Command(["Swift-${SWIFT_VERSION}.dSYM"], ["Swift"], ["dsymutil -o ${TARGET} ${SOURCE}"])
+ myenv.Command(["#/Packages/Swift/Swift-${SWIFT_VERSION}.dSYM.zip"], dsym, ["cd ${SOURCE.dir} && zip -r ${TARGET.abspath} ${SOURCE.name}"])
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)
+ 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"] or ARGUMENTS.get("dump_trace") :
- commonResources[""] = commonResources.get("", []) + [
- #os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),
- #os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),
- "#/Swift/resources/images",
- ]
- if env["SWIFTEN_DLL"] :
- commonResources[""] = commonResources.get("", []) + ["#/Swiften/${SWIFTEN_LIBRARY_FILE}"]
- qtplugins = {}
- qtplugins["imageformats"] = ["gif", "ico", "jpeg", "mng", "svg", "tiff"]
- qtlibs = ["QtCore", "QtGui", "QtNetwork", "QtWebKit", "QtXMLPatterns"]
- if qt_version == '4' :
- qtlibs.append("phonon")
- qtlibs = [lib + '4' for lib in qtlibs]
- else :
- qtlibs += ['QtQuick', 'QtQml', 'QtPositioning', 'QtMultimedia', 'QtSql', 'QtSensors', 'QtWidgets', 'QtWebChannel', 'QtWebKitWidgets', 'QtMultimediaWidgets', 'QtOpenGL', 'QtPrintSupport']
- qtlibs = [lib.replace('Qt', 'Qt5') for lib in qtlibs]
- qtlibs += ['icuin51', 'icuuc51', 'icudt51', 'libGLESv2', 'libEGL']
- qtplugins["platforms"] = ['windows']
- qtplugins["accessible"] = ["taccessiblewidgets"]
-
- windowsBundleFiles = myenv.WindowsBundle("Swift",
- resources = commonResources,
- qtplugins = qtplugins,
- qtlibs = qtlibs,
- qtversion = qt_version)
-
- if env["DIST"] :
- #myenv.Append(NSIS_OPTIONS = [
- # "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",
- # "/DbuildVersion=" + myenv["SWIFT_VERSION"]
- # ])
- #myenv.Nsis("../Packaging/nsis/swift.nsi")
- if env["SCONS_STAGE"] == "build" and env.get("wix_bindir", None):
- def convertToRTF(env, target, source) :
- infile = open(source[0].abspath, 'r')
- outfile = open(target[0].abspath, 'w')
- outfile.write('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\fs16\\f0\\pard\n')
- for line in infile:
- for char in line.decode("utf-8") :
- if ord(char) > 127 :
- # FIXME: This is incorrect, because it only works for latin1.
- # The correct way is \u<decimal utf16 point>? , but this is more
- # work
- outfile.write("\\'%X" % ord(char))
- else :
- outfile.write(char)
- outfile.write('\\par ')
- outfile.write('}')
- outfile.close()
- infile.close()
- copying = env.Command(["Swift/COPYING.rtf"], ["COPYING"], convertToRTF)
- wixvariables = {
- 'VCCRTFile': env["vcredist"],
- 'Version': str(myenv["SWIFT_VERSION_MAJOR"]) + "." + str(myenv["SWIFT_VERSION_MINOR"]) + "." + str(myenv["SWIFT_VERSION_PATCH"])
- }
- wixincludecontent = "<Include>"
- for key in wixvariables:
- wixincludecontent += "<?define %s = \"%s\" ?>" % (key, wixvariables[key])
- wixincludecontent += "</Include>"
- myenv.WriteVal("..\\Packaging\\Wix\\variables.wxs", env.Value(wixincludecontent))
- myenv["WIX_SOURCE_OBJECT_DIR"] = "Swift\\QtUI\\Swift"
- myenv.WiX_Heat('..\\Packaging\\WiX\\gen_files.wxs', windowsBundleFiles + copying)
- 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('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.msi', ['..\\Packaging\\WiX\\gen_files.wixobj','..\\Packaging\\WiX\\Swift.wixobj'])
-
- if myenv["debug"] :
- myenv.InstallAs('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.pdb', "Swift.pdb")
+ if env["DIST"] or ARGUMENTS.get("dump_trace") :
+ commonResources[""] = commonResources.get("", []) + [
+ #os.path.join(env["OPENSSL_DIR"], "bin", "ssleay32.dll"),
+ #os.path.join(env["OPENSSL_DIR"], "bin", "libeay32.dll"),
+ "#/Swift/resources/images",
+ ]
+ if env["SWIFTEN_DLL"] :
+ commonResources[""] = commonResources.get("", []) + ["#/Swiften/${SWIFTEN_LIBRARY_FILE}"]
+ qtplugins = {}
+ qtplugins["imageformats"] = ["gif", "ico", "jpeg", "mng", "svg", "tiff"]
+ qtlibs = ["QtCore", "QtGui", "QtNetwork", "QtWebKit", "QtXMLPatterns"]
+ if qt_version == '4' :
+ qtlibs.append("phonon")
+ qtlibs = [lib + '4' for lib in qtlibs]
+ else :
+ qtlibs += ['QtQuick', 'QtQml', 'QtPositioning', 'QtMultimedia', 'QtSql', 'QtSensors', 'QtWidgets', 'QtWebChannel', 'QtWebKitWidgets', 'QtMultimediaWidgets', 'QtOpenGL', 'QtPrintSupport']
+ qtlibs = [lib.replace('Qt', 'Qt5') for lib in qtlibs]
+ qtlibs += ['icuin51', 'icuuc51', 'icudt51', 'libGLESv2', 'libEGL']
+ qtplugins["platforms"] = ['windows']
+ qtplugins["accessible"] = ["taccessiblewidgets"]
+
+ windowsBundleFiles = myenv.WindowsBundle("Swift",
+ resources = commonResources,
+ qtplugins = qtplugins,
+ qtlibs = qtlibs,
+ qtversion = qt_version)
+
+ if env["DIST"] :
+ #myenv.Append(NSIS_OPTIONS = [
+ # "/DmsvccRedistributableDir=\"" + env["vcredist"] + "\"",
+ # "/DbuildVersion=" + myenv["SWIFT_VERSION"]
+ # ])
+ #myenv.Nsis("../Packaging/nsis/swift.nsi")
+ if env["SCONS_STAGE"] == "build" and env.get("wix_bindir", None):
+ def convertToRTF(env, target, source) :
+ infile = open(source[0].abspath, 'r')
+ outfile = open(target[0].abspath, 'w')
+ outfile.write('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\fs16\\f0\\pard\n')
+ for line in infile:
+ for char in line.decode("utf-8") :
+ if ord(char) > 127 :
+ # FIXME: This is incorrect, because it only works for latin1.
+ # The correct way is \u<decimal utf16 point>? , but this is more
+ # work
+ outfile.write("\\'%X" % ord(char))
+ else :
+ outfile.write(char)
+ outfile.write('\\par ')
+ outfile.write('}')
+ outfile.close()
+ infile.close()
+ copying = env.Command(["Swift/COPYING.rtf"], ["COPYING"], convertToRTF)
+ wixvariables = {
+ 'VCCRTFile': env["vcredist"],
+ 'Version': str(myenv["SWIFT_VERSION_MAJOR"]) + "." + str(myenv["SWIFT_VERSION_MINOR"]) + "." + str(myenv["SWIFT_VERSION_PATCH"])
+ }
+ wixincludecontent = "<Include>"
+ for key in wixvariables:
+ wixincludecontent += "<?define %s = \"%s\" ?>" % (key, wixvariables[key])
+ wixincludecontent += "</Include>"
+ myenv.WriteVal("..\\Packaging\\Wix\\variables.wxs", env.Value(wixincludecontent))
+ myenv["WIX_SOURCE_OBJECT_DIR"] = "Swift\\QtUI\\Swift"
+ myenv.WiX_Heat('..\\Packaging\\WiX\\gen_files.wxs', windowsBundleFiles + copying)
+ myenv.WiX_Candle('..\\Packaging\\WiX\\Swift.wixobj', '..\\Packaging\\WiX\\Swift.wxs')
+ myenv.WiX_Candle('..\\Packaging\\WiX\\gen_files.wixobj', '..\\Packaging\\WiX\\gen_files.wxs')
+ lightTask = myenv.WiX_Light('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.msi', ['..\\Packaging\\WiX\\gen_files.wixobj','..\\Packaging\\WiX\\Swift.wixobj'])
+ if myenv.get("SIGNTOOL_KEY_PFX", None) and myenv.get("SIGNTOOL_TIMESTAMP_URL", None) :
+ def signToolAction(target = None, source = None, env = None):
+ env.Execute('signtool.exe sign /fd SHA256 /f "${SIGNTOOL_KEY_PFX}" /t "${SIGNTOOL_TIMESTAMP_URL}" ' + str(target[0]))
+
+ myenv.AddPostAction(lightTask, signToolAction)
+
+ if myenv["debug"] :
+ myenv.InstallAs('#/Packages/Swift/Swift-' + myenv["SWIFT_VERSION"] + '.pdb', "Swift.pdb")