path_list = []
head, tail = os.path.split(path)
path_list.insert(0, tail)
- while len(head) > 0:
+ while head != os.path.sep and len(head) > 0:
head, tail = os.path.split(head)
path_list.insert(0, tail)
created_path = ""
OS X's treatment of dynamic loading is annoying
properly prelink all the annoying qt components.
"""
+ print >>sys.stderr, "Prelinking", app_name, "in", bundle_dir,
framework_subpath = os.path.join("%(framework)s.framework", "Versions", "4", "%(framework)s")
- frameworks = ['QtCore', 'QtGui', 'QtOpenGL', 'QtAssistantClient', 'QtNetwork']
+ frameworks = ['QtCore', 'QtGui', 'QtOpenGL', 'QtAssistant', 'QtNetwork']
qt_framework=os.path.join(qt_lib_dir, framework_subpath)
app_binary=bundle_dir+"/Contents/MacOS/"+app_name
contents_exe_path = "@executable_path/../Frameworks/" + framework_subpath
contents_exe_path %= ({'framework': frame2})
call(['install_name_tool','-change',qtframe2,contents_exe_path,appframe])
+ print "."
def validate_bundle(bundle_path):
"""
return valid
def main(args):
- qtroot = "/usr/local/qt/4.2.1"
+ qtroot = "/usr/local/qt/4.2.2"
app_name = None
build_num = None
bundle_dir = None
dmgfile = None
desturl = None
+ prelink_only = False
opts, args = getopt.getopt(args, "a:b:d:n:q:h",
["appbundle=", "build-num=", "destination=",
- "name=", "qt-root=", "help"])
+ "name=", "prelink-only", "qt-root=", "help"])
+
for option, argument in opts:
if option in ("-a", "--appbundle"):
bundle_dir = argument
desturl = argument
elif option in ("-n", "--name"):
app_name = argument
+ elif option in ("--prelink-only"):
+ prelink_only = True
elif option in ("-q", "--qt-root"):
qtroot = argument
elif option in ("-h", "--help"):
else:
dmg_name = app_name
+ bundle_dir = os.path.expanduser(bundle_dir)
+
if not os.path.exists(bundle_dir):
print >>sys.stderr, "couldn't find an app at %s" % (app_bundle)
return 1
qt_lib_dir = os.path.join(qtroot, 'lib')
prelinkqt(app_name, bundle_dir, qt_lib_dir)
- if validate_bundle(bundle_dir):
- dmgfile = makedmg([bundle_dir]+args, dmg_name)
- else:
+ if not validate_bundle(bundle_dir):
print >>sys.stderr, "Invalid libraries found"
return 1
+ if prelink_only:
+ return 0
+
+ dmgfile = makedmg([bundle_dir]+args, dmg_name)
if dmgfile and desturl:
print "Uploading",dmgfile,"to",desturl
ship(dmgfile, desturl)