Add code in viewer_manifest.py to create a symlink for second copy of CEF framework vs copying in second version

meow-7.2.2
Callum Prentice 2015-06-18 12:01:13 -07:00
parent 559f71bf90
commit f97fb4d80f
1 changed files with 21 additions and 1 deletions

View File

@ -820,9 +820,11 @@ class Darwin_i386_Manifest(ViewerManifest):
# LLCefLib helper apps go inside SLPlugin.app
if self.prefix(src="", dst="SLPlugin.app/Contents/Frameworks"):
for helperappfile in ('LLCefLib Helper.app',
'Chromium Embedded Framework.framework', # TODO replace with symlink
'LLCefLib Helper EH.app'):
self.path2basename(relpkgdir, helperappfile)
pluginframeworkpath = self.dst_path_of('Chromium Embedded Framework.framework');
self.end_prefix()
# SLPlugin plugins
@ -841,6 +843,24 @@ class Darwin_i386_Manifest(ViewerManifest):
self.path2basename(relpkgdir, frameworkfile)
self.end_prefix("Frameworks")
# This code constructs a relative path from the
# target framework folder back to the location of the symlink.
# It needs to be relative so that the symlink still works when
# (as is normal) the user moves the app bunlde out of the DMG
# and into the /Applications folder. Note we also call 'raise'
# to terminate the process if we get an error since without
# this symlink, Second Life web media can't possibly work.
# Real Framework folder:
# Second Life.app/Contents/Frameworks/Chromium Embedded Framework.framework/
# Location of symlink and why it'ds relavie
# Second Life.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework/
frameworkpath = os.path.join(os.pardir, os.pardir, os.pardir, os.pardir, "Frameworks", "Chromium Embedded Framework.framework")
try:
symlinkf(frameworkpath, pluginframeworkpath)
except OSError as err:
print "Can't symlink %s -> %s: %s" % (frameworkpath, pluginframeworkpath, err)
raise
self.end_prefix("Contents")
# fix up media_plugin.dylib so it knows where to look for CEF files it needs