Merge branch 'cmake'
[quassel.git] / scripts / build / macosx_makebundle.py
diff --git a/scripts/build/macosx_makebundle.py b/scripts/build/macosx_makebundle.py
new file mode 100755 (executable)
index 0000000..821ce74
--- /dev/null
@@ -0,0 +1,56 @@
+#!/usr/bin/python
+# -*- coding: iso-8859-1 -*-
+
+# ==============================
+#  Imports
+# ==============================
+import os
+import sys
+
+# ==============================
+#  Constants
+# ==============================
+if len(sys.argv) < 2:
+    sys.exit(1)
+
+SOURCE_DIR = sys.argv[1]
+
+if len(sys.argv) < 4:
+    BUNDLE_NAME= "Quassel Client"
+    EXE_NAME = "quasselclient"
+else:
+    BUNDLE_NAME = sys.argv[2]
+    EXE_NAME = sys.argv[3]
+CONTENTS_DIR = BUNDLE_NAME + ".app/Contents/"
+
+BUNDLE_VERSION = "0.2.0-pre"
+ICON_FILE = "src/icons/quassel/quassel.icns"
+
+def createBundle():
+    try:
+        os.makedirs(CONTENTS_DIR + "MacOS")
+        os.makedirs(CONTENTS_DIR + "Resources")
+    except:
+        pass
+
+def copyFiles(exeFile, iconFile):
+    os.system("cp %s %sMacOs/%s" % (exeFile, CONTENTS_DIR.replace(' ', '\ '), BUNDLE_NAME.replace(' ', '\ ')))
+    os.system("cp %s/%s %s/Resources" % (SOURCE_DIR, iconFile, CONTENTS_DIR.replace(' ', '\ ')))
+
+def createPlist(bundleName, iconFile, bundleVersion):
+    templateFile = file(SOURCE_DIR + "/scripts/build/Info.plist", 'r')
+    template = templateFile.read()
+    templateFile.close()
+    print 
+
+    plistFile = file(CONTENTS_DIR + "Info.plist", 'w')
+    plistFile.write(template % {"BUNDLE_NAME" : bundleName,
+                                "ICON_FILE" : iconFile[iconFile.rfind("/")+1:],
+                                "BUNDLE_VERSION" : bundleVersion})
+    plistFile.close()
+
+if __name__ == "__main__":
+    createBundle()
+    createPlist(BUNDLE_NAME, ICON_FILE, BUNDLE_VERSION)
+    copyFiles(EXE_NAME, ICON_FILE)
+    pass