Age | Commit message (Collapse) | Author |
|
The example code on the BugSplat documentation page
https://www.bugsplat.com/docs/platforms/os-x#configuration
omits certain essential Objective-C++ boilerplate incantations. Adding them
at least compiles successfully.
|
|
|
|
Introduce new header file llappviewermacosx-for-objc.h to publish for
llappdelegate-objc.mm and other Objective-C++ consumers the free functions in
llappviewermacosx.cpp they consume. These were never before declared in any
header file. Apparently, to date, we've been trusting to luck that
Objective-C++ will infer the correct signature from calls -- and that the
calls are correct with respect to the function definitions. :-P
This gives us a place to introduce a new getLogFilePathname() function to
query LLDir. (We don't simply #include "lldir.h" because of the pervasive use
of BOOL in viewer headers; BOOL means something very different in Objective-C++.)
|
|
|
|
It might point to an uninitialized LLDir, but that's a whole separate problem,
one that wouldn't be detected by checking for nullptr. If we hit that, time to
change to an LLSingleton.
|
|
|
|
With BugSplat, the Breakpad symbol files aren't generated; attempting to post
them to codeticket will fail the build.
|
|
|
|
|
|
|
|
Set our CMake 'product' variable to VIEWER_CHANNEL. This probably has far-
reaching implications, but it seems the expedient way to keep everything self-
consistent. Use ${product} in the DARWIN VIEWER_EXE_GLOBS used for Breakpad
symbol dumping instead of hardcoding 'Second Life'.
The Breakpad symbol dumping stanza was enclosed in nested (but not indented)
conditions. To these we add another condition: don't bother if we're using
BugSplat. Unify all three into a single horrendous outermost expression.
Fix the MACOSX_BUNDLE_INFO_STRING, and hence CFBundleGetInfoString, to
VIEWER_CHANNEL as well.
Our CMake MACOSX_BUNDLE_SHORT_VERSION_STRING was never used before -- we were
erroneously using MACOSX_BUNDLE_LONG_VERSION_STRING in the Info-SecondLife.plist
template even for CFBundleShortVersionString. Looks like a classic copy/paste
error. Fix that; also use four-part version number instead of three-part.
With those two changes, we shouldn't need to patch the top-level Info.plist in
viewer_manifest.py any more.
viewer_manifest.py still needs to move the viewer executable(s) to the
embedded viewer app bundle, but it no longer needs to rename the real
executable to the channel name since we've already dealt with that in CMake
land. This lets us unify the code that picks the biggest of those executables
in the first and second viewer_manifest.py runs.
|
|
|
|
This requires fixing CFBundleExecutable as well.
|
|
|
|
|
|
Pass LL_BUGSPLAT into llapp.cpp compile to be able to detect that.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
so that when a glob has no expansion you don't get the glob back (
*.sh expands to empty rather than to "*.sh")
|
|
|
|
|
|
|
|
|
|
Produce CMake message when BugSplat is engaged so we can detect in build log.
Don't try to copy BugSplat DLLs when NOT engaged.
|
|
On TeamCity, set BUGSPLAT_DB from build-secrets.
Use the presence of $BUGSPLAT_DB, rather than a new CMake BUGSPLAT option, to
control whether CMake searches for BugSplat -- and passes LL_BUGSPLAT into C++.
When BUGSPLAT_DB is present, make viewer_manifest.py set "BugSplat DB" in
build_data.json, and "BugsplatServerURL" in Mac Info.plist.
Make llappviewerwin32.cpp read "BugSplat DB" from build_data.json.
Add placeholders for Mac hooks to suppress BugSplat prompt and send
SecondLife.log.
|
|
|
|
cmake -E copy does only one file at a time, and older CMake versions don't
handle wildcards. But cmake -E copy is specifically for portability. When the
copy operation itself is Darwin-only, we can count on having 'cp' available.
|
|
instead of the INSTALL_RPATH CMake property, which _should_ have worked.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The BugsplatMac framework is stamped with @rpath/BugsplatMac.framework/etc.,
so that's the dependency stamped into our viewer executable. To support that
lookup, direct CMake to add an appropriate RPATH to the executable.
|
|
|
|
|
|
|
|
The BugsplatMac package is built as a module requiring @import. Using @import
requires Objective-C++ module support, which requires the -fmodules switch.
|
|
|
|
|