X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=scripts%2Fbuild%2Fmacosx_makebundle.py;h=85742a0610a3cf7b97a4d5c1c99524bf54ca007b;hp=821ce74e79484895c31a9388c87d6d17ddb7a0de;hb=28eb43dd1ccd882b2975c346297842c1dc074469;hpb=cb1918d94b5d8ec9f05a192c96fab938782dabf5 diff --git a/scripts/build/macosx_makebundle.py b/scripts/build/macosx_makebundle.py index 821ce74e..85742a06 100755 --- a/scripts/build/macosx_makebundle.py +++ b/scripts/build/macosx_makebundle.py @@ -1,11 +1,25 @@ #!/usr/bin/python # -*- coding: iso-8859-1 -*- +################################################################################ +# # +# 2008 June 27th by Marcus 'EgS' Eggenberger # +# # +# The author disclaims copyright to this source code. # +# This Python Script is in the PUBLIC DOMAIN. # +# # +################################################################################ + # ============================== # Imports # ============================== import os +import os.path import sys +import commands + +# Handling Qt properties +import macosx_qt # ============================== # Constants @@ -16,15 +30,20 @@ if len(sys.argv) < 2: SOURCE_DIR = sys.argv[1] if len(sys.argv) < 4: - BUNDLE_NAME= "Quassel Client" + 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_NAME = sys.argv[2] + +# make the dir of the exe the target dir +if(os.path.dirname(EXE_NAME)): + CONTENTS_DIR = os.path.dirname(EXE_NAME) + "/" +CONTENTS_DIR += BUNDLE_NAME + ".app/Contents/" + +BUNDLE_VERSION = commands.getoutput("git --git-dir=" + SOURCE_DIR + "/.git/ describe") +ICONSET_FOLDER = "pics/iconset/" -BUNDLE_VERSION = "0.2.0-pre" -ICON_FILE = "src/icons/quassel/quassel.icns" def createBundle(): try: @@ -33,24 +52,39 @@ def createBundle(): except: pass -def copyFiles(exeFile, iconFile): + +def copyFiles(exeFile, iconset): 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(' ', '\ '))) + os.system("cp -r %s/%s %s/Resources/quassel.iconset/" % (SOURCE_DIR, iconset, CONTENTS_DIR.replace(' ', '\ '))) + -def createPlist(bundleName, iconFile, bundleVersion): +def createPlist(bundleName, bundleVersion): templateFile = file(SOURCE_DIR + "/scripts/build/Info.plist", 'r') template = templateFile.read() templateFile.close() - print + + # Get the minimum macOS deployment version + QT_MACOSX_DEPLOYMENT_TARGET = macosx_qt.qtMakespec('QMAKE_MACOSX_DEPLOYMENT_TARGET') + # Keep in sync with QMAKE_MACOSX_DEPLOYMENT_TARGET + # See https://doc.qt.io/qt-5/macos.html + if QT_MACOSX_DEPLOYMENT_TARGET is None: + # Something went wrong + sys.exit("Could not determine 'QMAKE_MACOSX_DEPLOYMENT_TARGET', check build scripts") + print("Qt macOS deployment target (minimum version): %s" % QT_MACOSX_DEPLOYMENT_TARGET) plistFile = file(CONTENTS_DIR + "Info.plist", 'w') - plistFile.write(template % {"BUNDLE_NAME" : bundleName, - "ICON_FILE" : iconFile[iconFile.rfind("/")+1:], - "BUNDLE_VERSION" : bundleVersion}) + plistFile.write(template % {"BUNDLE_NAME": bundleName, + "ICON_FILE": "quassel.icns", + "BUNDLE_VERSION": bundleVersion, + "QT_MACOSX_DEPLOYMENT_TARGET": QT_MACOSX_DEPLOYMENT_TARGET}) plistFile.close() +def convertIconset(): + os.system("iconutil -c icns %s/Resources/quassel.iconset" % CONTENTS_DIR.replace(' ', '\ ')) + os.system("rm -R %s/Resources/quassel.iconset" % CONTENTS_DIR.replace(' ', '\ ')) + if __name__ == "__main__": createBundle() - createPlist(BUNDLE_NAME, ICON_FILE, BUNDLE_VERSION) - copyFiles(EXE_NAME, ICON_FILE) - pass + createPlist(BUNDLE_NAME, BUNDLE_VERSION) + copyFiles(EXE_NAME, ICONSET_FOLDER) + convertIconset()