summaryrefslogtreecommitdiffstats
blob: 800a0090a76c97e2563b375bc7d7a3851032cb33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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>")

Import("env")

myenv = env.Clone()

myenv.MergeFlags(env["SWIFT_CONTROLLERS_FLAGS"])
myenv.MergeFlags(env["SWIFTOOLS_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.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",
		"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 = ARGUMENTS.get("swift_version", None))

if env["PLATFORM"] == "win32" :
	myenv.RES("../resources/Windows/Swift.rc")
	sources += ["../resources/Windows/Swift.res"]

if env["PLATFORM"] == "darwin" or env["PLATFORM"] == "win32" :
	swiftProgram = myenv.Program("Swift", sources)
else :
	swiftProgram = myenv.Program("swift", sources)

myenv.Uic4("QtJoinMUCDialog.ui")
myenv.Uic4("QtAddContactDialog.ui")
myenv.Qrc("DefaultTheme.qrc")
myenv.Qrc("Swift.qrc")

buildVersion = Version.getBuildVersion(ARGUMENTS.get("swift_version", None))

if env["PLATFORM"] == "darwin" :
  myenv.AppBundle("Swift", version = buildVersion, resources = ["../resources/MacOSX/Swift.icns"])

if env.get("SWIFT_INSTALLDIR", "") :
	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=" + buildVersion
			])
		myenv.Nsis("../Packaging/nsis/swift.nsi")