viewer_manifest is run twice by CMakeLists.txt: once with --actions=copy and
once with the default actions copy and package. The fact that we (try to) move
the Mac viewer executable both times has confused things on a number of
occasions. Currently it's bollixing our attempt to run dsymutil on the
executable so we can package up the Mac symbols for both codeticket and
BugSplat.
Introduce DarwinManifest.is_rearranging() that tests whether either "package"
or "unpacked" is in self.args["actions"], echoing an earlier test. Make
several things conditional on that, notably moving the executable.
If this theory is correct, setting VIEWER_APP_EXECUTABLE to VIEWER_BINARY_NAME
and then referencing VIEWER_APP_EXECUTABLE instead of VIEWER_BINARY_NAME
confuses CMake as to the filename involved. <eyeroll/>
Seems VIEWER_SYMBOL_FILE arrives from build.sh as a relative pathname, so
passing that pathname to tar when we run tar with WORKING_DIRECTORY confuses
it. But if we use tar's -C switch, we can achieve the effect we want (no
leading directory prefixes in the tarball) without WORKING_DIRECTORY. Thing
is, we have to run the desired directory through cygpath first, which is why
we went with WORKING_DIRECTORY in the first place.
This is a separate step from generating and posting BugSplat symbols, since
BugSplat needs the executable along with the symbols, and we don't need to
consume that space in a symbols tarball.
Move Mac BugSplat symbol generation logic to CMake land, the same general area
where Breakpad symbols are generated. Add stanzas to pack up the usual tarball
for Windows and Mac.
Remove the build.sh test that suppressed uploading the symbols tarball for
BugSplat builds.
instead of relying on both indra/newview/CMakeLists.txt and build.sh
generating the same file pathname.
Make build.sh set VIEWER_SYMBOL_FILE (instead of symbolfile) in pre_build, and
pass it to autobuild configure via -D switch. Then the uploads stanza can just
use VIEWER_SYMBOL_FILE instead of performing its platform-sensitive case
statement right there.
Introduce VIEWER_SYMBOL_FILE CMake cache variable, default empty string.
Make indra/newview/CMakeLists.txt generate_breakpad_symbols logic conditional
on VIEWER_SYMBOL_FILE being non-empty, as well as everything else. Eliminate
local set(VIEWER_SYMBOL_FILE) directives.