"""
-
-
class InstallQt(object):
- def __init__(self, appdir, bundle = True, requestedPlugins=[]):
+ def __init__(self, appdir, bundle=True, requestedPlugins=[]):
self.appDir = appdir
self.bundle = bundle
self.frameworkDir = self.appDir + "/Frameworks"
for executable in executables:
self.resolveDependancies(executable)
-
self.findPluginsPath()
self.installPlugins(requestedPlugins)
self.installQtConf()
raise OSError
return result
-
def installPlugins(self, requestedPlugins):
try:
os.mkdir(self.pluginDir)
def resolveDependancies(self, obj):
# obj must be either an application binary or a framework library
- #print "resolving deps for:", obj
+ # print "resolving deps for:", obj
for framework, lib in self.determineDependancies(obj):
self.installFramework(framework)
self.changeDylPath(obj, framework, lib)
except:
libname = ''
otoolProcess.stdout.close()
- if otoolProcess.wait() == 1: # we found some Resource dir or similar -> skip
+ if otoolProcess.wait() == 1: # we found some Resource dir or similar -> skip
continue
frameworkpath, libpath = libname.split(frameworkname)
if self.bundle:
newlibname = "@executable_path/../%s%s" % (frameworkname, libpath)
else:
newlibname = "@executable_path/%s%s" % (frameworkname, libpath)
- #print 'install_name_tool -id "%s" "%s"' % (newlibname, lib)
+ # print 'install_name_tool -id "%s" "%s"' % (newlibname, lib)
os.system('install_name_tool -id "%s" "%s"' % (newlibname, lib))
self.resolveDependancies(lib)
otoolPipe = Popen('otool -L "%s"' % app, shell=True, stdout=PIPE).stdout
otoolOutput = [line for line in otoolPipe]
otoolPipe.close()
- libs = [line.split()[0] for line in otoolOutput[1:] if ("Qt" in line
- or "phonon" in line)
- and not "@executable_path" in line]
- frameworks = [lib[:lib.find(".framework")+len(".framework")] for lib in libs]
- frameworks = [framework[framework.rfind('/')+1:] for framework in frameworks]
+ libs = [line.split()[0] for line in otoolOutput[1:] if ("Qt" in line or "phonon" in line) and "@executable_path" not in line]
+ frameworks = [lib[:lib.find(".framework") + len(".framework")] for lib in libs]
+ frameworks = [framework[framework.rfind('/') + 1:] for framework in frameworks]
return zip(frameworks, libs)
-
def changeDylPath(self, obj, framework, lib):
newlibname = framework + lib.split(framework)[1]
if self.bundle:
else:
newlibname = "@executable_path/Frameworks/%s" % newlibname
- #print 'install_name_tool -change "%s" "%s" "%s"' % (lib, newlibname, obj)
+ # print 'install_name_tool -change "%s" "%s" "%s"' % (lib, newlibname, obj)
os.system('install_name_tool -change "%s" "%s" "%s"' % (lib, newlibname, obj))
if __name__ == "__main__":
SOURCE_DIR = sys.argv[1]
if len(sys.argv) < 4:
- BUNDLE_NAME= "Quassel Client"
+ BUNDLE_NAME = "Quassel Client"
EXE_NAME = "quasselclient"
else:
EXE_NAME = sys.argv[3]
CONTENTS_DIR = os.path.dirname(EXE_NAME) + "/"
CONTENTS_DIR += BUNDLE_NAME + ".app/Contents/"
-BUNDLE_VERSION = commands.getoutput("git --git-dir="+SOURCE_DIR+"/.git/ describe")
+BUNDLE_VERSION = commands.getoutput("git --git-dir=" + SOURCE_DIR + "/.git/ describe")
ICON_FILE = "pics/quassel.icns"
+
def createBundle():
try:
os.makedirs(CONTENTS_DIR + "MacOS")
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()
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": 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