summaryrefslogtreecommitdiffstats
blob: 36cf850b1cc1406759eba98911af06e60d89da4d (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
import os

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>")

def createBundle(env, target, source) :
	target = target[0].abspath
	source = source[0].abspath
	os.makedirs(target + "/Contents/MacOS")
	Execute(Copy(target + "/Contents/MacOS", source))
	pkgInfo = open(target + "/Contents/PkgInfo", "w")
	pkgInfo.write("APPL\77\77\77\77")
	pkgInfo.close()

Import("env")

myenv = env.Clone()

myenv.MergeFlags(env["SWIFT_CONTROLLERS_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["EXPAT_FLAGS"])
myenv.MergeFlags(env["ZLIB_FLAGS"])
myenv.MergeFlags(env["OPENSSL_FLAGS"])

myenv.Tool("qt4", toolpath = ["#/BuildTools/SCons/Tools"])
myenv.EnableQt4Modules(['QtCore', 'QtGui', 'QtWebKit'], debug = False)
myenv.Append(CPPPATH = ["/usr/include/phonon"])

myenv.Append(CPPPATH = ["."])

myenv.Command("DefaultTheme.qrc", "../resources/themes/Default", Action(generateDefaultTheme, cmdstr = "$GENCOMSTR"))

sources = [
		"main.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",
		"ChatSnippet.cpp",
		"MessageSnippet.cpp",
		"SystemMessageSnippet.cpp",
		"Roster/RosterModel.cpp",
		"Roster/QtTreeWidget.cpp",
		"Roster/QtTreeWidgetItem.cpp",
		"Roster/RosterDelegate.cpp",
		"qrc_DefaultTheme.cc",
		"qrc_Swift.cc",
	]

if env["PLATFORM"] == "win32" :
	sources += ["../resources/Windows/Swift.rc"]

if env["PLATFORM"] == "darwin" or env["PLATFORM"] == "win32" :
	myenv.Program("Swift", sources)
else :
	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)