summaryrefslogtreecommitdiff
path: root/indra/newview/viewer_manifest.py
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2016-12-22 11:16:55 -0500
committerOz Linden <oz@lindenlab.com>2016-12-22 11:16:55 -0500
commitbe69197e0d3af1832a22c6d2475e3e1178a88a31 (patch)
treede9abd1dfc12d6da7e11e385c7dbbb53e631353a /indra/newview/viewer_manifest.py
parent04c7a7a64ac40f471dcec0019a2c7235ad22bd3d (diff)
parente9f5ed6591fb5d2513b5065622b9e7dac6737913 (diff)
merge changes from project trunk
Diffstat (limited to 'indra/newview/viewer_manifest.py')
-rwxr-xr-xindra/newview/viewer_manifest.py40
1 files changed, 35 insertions, 5 deletions
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index a8049d874d..89c98a1cb3 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -788,7 +788,7 @@ class DarwinManifest(ViewerManifest):
"libapr-1.0.dylib",
"libaprutil-1.0.dylib",
"libcollada14dom.dylib",
- "libexpat.1.5.2.dylib",
+ "libexpat.1.dylib",
"libexception_handler.dylib",
"libGLOD.dylib",
):
@@ -846,6 +846,16 @@ class DarwinManifest(ViewerManifest):
self.path2basename(relpkgdir, helperappfile)
pluginframeworkpath = self.dst_path_of('Chromium Embedded Framework.framework');
+ # Putting a Frameworks directory under Contents/MacOS
+ # isn't canonical, but the path baked into LLCefLib
+ # Helper.app/Contents/MacOS/LLCefLib Helper is:
+ # @executable_path/Frameworks/Chromium Embedded Framework.framework/Chromium Embedded Framework
+ # (notice, not @executable_path/../Frameworks/etc.)
+ # So we'll create a symlink (below) from there back to the
+ # Frameworks directory nested under SLPlugin.app.
+ helperframeworkpath = \
+ self.dst_path_of('LLCefLib Helper.app/Contents/MacOS/'
+ 'Frameworks/Chromium Embedded Framework.framework')
self.end_prefix()
@@ -874,16 +884,36 @@ class DarwinManifest(ViewerManifest):
# 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 relative
+ # Location of symlink and why it's relative
# Second Life.app/Contents/Resources/SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework/
# Real Frameworks folder, with the symlink inside the bundled SLPlugin.app (and why it's relative)
# <top level>.app/Contents/Frameworks/Chromium Embedded Framework.framework/
# <top level>.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")
+ # It might seem simpler just to create a symlink Frameworks to
+ # the parent of Chromimum Embedded Framework.framework. But
+ # that would create a symlink cycle, which breaks our
+ # packaging step. So make a symlink from Chromium Embedded
+ # Framework.framework to the directory of the same name, which
+ # is NOT an ancestor of the symlink.
+ frameworkpath = os.path.join(os.pardir, os.pardir, os.pardir,
+ os.pardir, "Frameworks",
+ "Chromium Embedded Framework.framework")
try:
- symlinkf(frameworkpath, pluginframeworkpath)
+ # from SLPlugin.app/Contents/Frameworks/Chromium Embedded
+ # Framework.framework back to Second
+ # Life.app/Contents/Frameworks/Chromium Embedded Framework.framework
+ origin, target = pluginframeworkpath, frameworkpath
+ symlinkf(target, origin)
+ # from SLPlugin.app/Contents/Frameworks/LLCefLib
+ # Helper.app/Contents/MacOS/Frameworks/Chromium Embedded
+ # Framework.framework back to
+ # SLPlugin.app/Contents/Frameworks/Chromium Embedded Framework.framework
+ self.cmakedirs(os.path.dirname(helperframeworkpath))
+ origin = helperframeworkpath
+ target = os.path.join(os.pardir, frameworkpath)
+ symlinkf(target, origin)
except OSError as err:
- print "Can't symlink %s -> %s: %s" % (frameworkpath, pluginframeworkpath, err)
+ print "Can't symlink %s -> %s: %s" % (origin, target, err)
raise
self.end_prefix("Contents")