Merge branch 'cmake'
[quassel.git] / scripts / build / macosx_makebundle.py
1 #!/usr/bin/python
2 # -*- coding: iso-8859-1 -*-
3
4 # ==============================
5 #  Imports
6 # ==============================
7 import os
8 import sys
9
10 # ==============================
11 #  Constants
12 # ==============================
13 if len(sys.argv) < 2:
14     sys.exit(1)
15
16 SOURCE_DIR = sys.argv[1]
17
18 if len(sys.argv) < 4:
19     BUNDLE_NAME= "Quassel Client"
20     EXE_NAME = "quasselclient"
21 else:
22     BUNDLE_NAME = sys.argv[2]
23     EXE_NAME = sys.argv[3]
24 CONTENTS_DIR = BUNDLE_NAME + ".app/Contents/"
25
26 BUNDLE_VERSION = "0.2.0-pre"
27 ICON_FILE = "src/icons/quassel/quassel.icns"
28
29 def createBundle():
30     try:
31         os.makedirs(CONTENTS_DIR + "MacOS")
32         os.makedirs(CONTENTS_DIR + "Resources")
33     except:
34         pass
35
36 def copyFiles(exeFile, iconFile):
37     os.system("cp %s %sMacOs/%s" % (exeFile, CONTENTS_DIR.replace(' ', '\ '), BUNDLE_NAME.replace(' ', '\ ')))
38     os.system("cp %s/%s %s/Resources" % (SOURCE_DIR, iconFile, CONTENTS_DIR.replace(' ', '\ ')))
39
40 def createPlist(bundleName, iconFile, bundleVersion):
41     templateFile = file(SOURCE_DIR + "/scripts/build/Info.plist", 'r')
42     template = templateFile.read()
43     templateFile.close()
44     print 
45
46     plistFile = file(CONTENTS_DIR + "Info.plist", 'w')
47     plistFile.write(template % {"BUNDLE_NAME" : bundleName,
48                                 "ICON_FILE" : iconFile[iconFile.rfind("/")+1:],
49                                 "BUNDLE_VERSION" : bundleVersion})
50     plistFile.close()
51
52 if __name__ == "__main__":
53     createBundle()
54     createPlist(BUNDLE_NAME, ICON_FILE, BUNDLE_VERSION)
55     copyFiles(EXE_NAME, ICON_FILE)
56     pass