Commit Graph

36889 Commits (f13c2a6d31ed44fb620cc7709802861bfdbf98c4)

Author SHA1 Message Date
Callum Linden f13c2a6d31 First set of changes to build (tests off) to build correctly against Xcode 8 and SDK 10.12 2017-01-19 14:19:46 -08:00
Nat Goodspeed f40bd0fac3 DRTVWR-418, SL-619: Update to google_breakpad build 501824
and re-enable breakpad symbol generation.
2017-01-06 17:03:35 -05:00
Nat Goodspeed 1fe8d04a46 DRTVWR-418, MAINT-7038: Don't add double quotes to channel name.
The CMake directive that passes VIEWER_CHANNEL to the C++ compiler as
LL_VIEWER_CHANNEL was enclosing the VIEWER_CHANNEL value in double quotes. At
this point in history, those double quotes literally become part of the
LL_VIEWER_CHANNEL value, causing the viewer to construct a bad Viewer Version
Manager query containing those double quotes. Removing them fixes the query.
2017-01-05 18:49:56 -05:00
Nat Goodspeed b0da6275f7 Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2017-01-04 17:06:00 -05:00
Nat Goodspeed 85438e6725 DRTVWR-418: Fix line-break problem; also explicitly request bash. 2017-01-04 15:27:31 -05:00
Nat Goodspeed 0529000452 DRTVWR-418: Set signing CMake switches in build.sh for proper quoting. 2017-01-04 14:15:54 -05:00
Nat Goodspeed 24d2c4ae48 DRTVWR-418: Harmless change to kick TeamCity build. 2017-01-04 12:04:33 -05:00
Nat Goodspeed 8b4022f041 DRTVWR-418: Consume autobuild_configure_parameters in build.sh. 2017-01-04 09:27:36 -05:00
Nat Goodspeed 3b62401cf5 DRTVWR-418: Remove -DENABLE_SIGNING and -DSIGNING_IDENTITY
from autobuild.xml's darwin64 Release and ReleaseOS build (xcodebuild)
command.

-D passed to xcodebuild does NOT set CMake variables. These switches, in this
 place, have never worked as intended.
2017-01-03 15:54:37 -05:00
Nat Goodspeed eff6bbea59 DRTVWR-418: Emit less confusing error message when LL_BUILD not set.
When LL_BUILD is not in the environment at autobuild configure time, important
macros such as LL_WINDOWS aren't set. That means that platform-dependent
macros such as LL_TYPEOF() aren't defined, which can produce obscure errors
like this:

indra\llcommon\llunittype.h(51): error C2226: syntax error :
unexpected type 'S' (packages\llphysicsextensions\stub\LLPhysicsExtensionsStubImpl.cpp)
10>          indra\llcommon\llunittype.h(52) :
see reference to class template instantiation 'LLResultTypeAdd<S,T>' being compiled

Make the CMake logic fail with a more readily-understood error in that case.
2016-12-22 16:12:21 -05:00
Nat Goodspeed 5bb619da97 Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2016-12-22 15:12:31 -05:00
Nat Goodspeed eaeadf71e0 DRTVWR-418: If we don't produce a symbol file, don't try to upload it. 2016-12-22 15:11:37 -05:00
Oz Linden 0131e8a081 one more try... also fixing setting of viewer_channel without quotes 2016-12-22 13:54:39 -05:00
Oz Linden 6ef555414d try again to actually fix the installer name function for Mac (and maybe Linux?) 2016-12-22 11:50:33 -05:00
Oz Linden e9f5ed6591 fix installer name function for Mac (and maybe Linux?) 2016-12-22 10:18:48 -05:00
Nat Goodspeed aa2aa5e2da DRTVWR-418: Migrate HAVOK suppression from autobuild.xml to build.sh.
Turns out that without HAVOK, we can't build the PhysicsExtensions_TPV; but
the viewer's build.sh is unaware of CMake switches set in autobuild.xml.
Passing those CMake overrides in build.sh allows us to test that setting
elsewhere in build.sh to skip the PhysicsExtensions_TPV step -- instead of
failing the build.
2016-12-21 20:51:18 -05:00
Nat Goodspeed 7a83f26323 DRTVWR-418: Temporarily disable Mac generate_breakpad_symbols.py. 2016-12-21 19:11:58 -05:00
Nat Goodspeed 546ead3d61 DRTVWR-418: Update to llphysicsextensions 501678, 501679 2016-12-21 16:02:31 -05:00
Nat Goodspeed a2a5bdf4b5 DRTVWR-418: Use ensure_equals() on iffy lerp test to display values. 2016-12-21 13:17:18 -05:00
Nat Goodspeed 594221790b DRTVWR-418: Fix a couple unused-variable fatal warnings in local builds.
If the only use of a variable is within llassert(), have to make the
declaration conditional on SHOW_ASSERT rather than guesswork about release
builds.
2016-12-21 12:46:28 -05:00
Nat Goodspeed 03d65d4ec4 DRTVWR-418: Deal with fatal warning 'unsafe mix of bool and BOOL' 2016-12-21 11:33:58 -05:00
Nat Goodspeed b3212f873d DRTVWR-418: Harmless change to kick the TeamCity build. 2016-12-21 10:43:42 -05:00
Nat Goodspeed 1cbdfce396 DRTVWR-418: Avoid constructing symlink cycle for CEF framework. 2016-12-20 21:27:40 -05:00
Nat Goodspeed 7359ec3ed8 DRTVWR-418: Temporarily suppress Havok in darwin64 builds. 2016-12-20 16:46:06 -05:00
Nat Goodspeed e575abe99f DRTVWR-418: Create CEF framework symlink from LLCefLib Helper.app.
Without that symlink, the helper app can't find CEF and we get no web content.
2016-12-20 16:44:51 -05:00
Nat Goodspeed a1a395b679 DRTVWR-418: Make viewer_manifest.py copy current libexpat.1.dylib. 2016-12-20 15:42:57 -05:00
Nat Goodspeed 8643954c70 DRTVWR-418: Update GLOD with build that's really 64-bit on Mac. 2016-12-20 15:11:20 -05:00
Nat Goodspeed be3e3fca32 DRTVWR-418: Fix libhunspell references to reflect current package. 2016-12-20 15:05:02 -05:00
Nat Goodspeed 6bc9504248 DRTVWR-418: Rationalize LLPipeline API.
Someone evidently figured every static LLPipeline method should have at least
one void* parameter. There were methods requiring void* parameters that were
completely ignored.

More to the point, there were methods whose callers have a U32 in hand -- and
which want to use a U32 -- but which bizarrely forced callers to cast to void*
just so the method could cast back to U32. In a 64-bit compile, this isn't
merely pointless, it's erroneous. Change all such methods to accept U32;
remove (void*) casts from call sites.

While at it, fix LLPipeline API to use bool, true, false rather than their
obsolete all-caps predecessors. Once you eat that first potato chip... :-P
2016-12-20 11:44:16 -05:00
Nat Goodspeed bcb4f2900b DRTVWR-418: operator comparison methods should be const.
clang has started to reject our non-const comparison operator methods used
within standard algorithms.
2016-12-20 11:01:17 -05:00
Nat Goodspeed 65cf4912f6 DRTVWR-418: Another fix for std::string::find() return type. 2016-12-20 10:42:22 -05:00
Nat Goodspeed 573287b50f DRTVWR-418: Fix API for LLTracker::stopTracking().
The signature for LLTracker::stopTracking() was silly: it accepted a void* for
the sole purpose of testing whether it was NULL. In other words, the parameter
was really a bool in void* clothing. Most callers passed NULL.

What got ugly was when you wanted to pass 'true', or a variable bool value.
Such values had to be cast to void*. In 64-bit land, the compiler correctly
flags that as extremely dubious practice.

But it's entirely unnecessary. Since stopTracking() wants a bool, change its
parameter to bool. Everybody wins.

(While at it, change a few related method params from BOOL to builtin bool.)
2016-12-20 09:44:10 -05:00
Nat Goodspeed 2499f6bcff DRTVWR-418: Casting pointer to BOOL is just wrong.
Since BOOL is simply a typedef for int, casting a 64-bit pointer to 32-bit int
is correctly diagnosed by the compiler as an error.

What works is to cast the pointer to (lowercase) bool, the builtin type, which
engages the compiler's test for "is this pointer NULL?"
2016-12-20 09:39:31 -05:00
Nat Goodspeed 42b8895c54 DRTVWR-418: Untangle LLWLParamKey, LLWLAnimator circularity.
LLWLAnimator stores a std::map<F32, LLWLParamKey>. But llwlanimator.h only
forward-declared LLWLParamKey, begging the question of how this ever compiled
on any previous platform.

LLWLParamKey was declared for real in llwlparammanager.h, so the obvious fix
is to #include "llwlparammanager.h" in llwlanimator.h. Unfortunately this
doesn't work because llwlparammanager.h already #includes "llwlanimator.h".

As the dependency is specifically on LLWLParamKey, which isa LLEnvKey, which
is declared in llenvmanager.h, move LLWLParamKey to llenvmanager.h. Then we
can #include "llenvmanager.h" in llwlanimator.h instead of merely forward-
declaring LLWLParamKey.

This migration compiles LLWLParamKey in a context in which LLTrans isn't
visible. It's not really clear why all LLWLParamKey's methods are inline, but
toString() -- the method that requires LLTrans -- isn't going to be fast in
any case. Break toString() out to llenvmanager.cpp, and #include "lltrans.h"
there.
2016-12-20 09:33:40 -05:00
Nat Goodspeed c992a6df9f DRTVWR-418: std::string::find() returns std::string::size_type.
Storing it in a U32 and then comparing it to std::string::npos isn't going to
work in 64 bit land.
2016-12-20 09:20:38 -05:00
Nat Goodspeed 553f9843b0 DRTVWR-418: Update to darwin64 llceflib with libc++, not libstdc++. 2016-12-19 23:00:34 -05:00
Nat Goodspeed 555259e50f DRTVWR-418: Avoid casting sa_sigaction to unsigned int for comparing.
It's not really clear to me why the original coder felt it necessary to cast
the two sigaction::sa_sigaction fields to unsigned int in the first place, but
in a 64-bit clang compile, that discards information.
2016-12-19 22:51:40 -05:00
Nat Goodspeed f130b648b4 DRTVWR-418: Use $LL_BUILD to set most switches in 00-Common.cmake.
Going forward, the intention is to set in 00-Common.cmake only switches not
already set for ALL viewer-related libraries in
https://bitbucket.org/lindenlab/viewer-build-variables/src/tip/variables.

To that end, remove all switches redundant with settings from that file.
Remove redundancies within 00-Common.cmake.
Remove cruft testing for gcc versions older than 4.3.
2016-12-19 18:55:31 -05:00
Nat Goodspeed 40fb9d3e58 DRTVWR-418: Use U32 for int (and hex) of HttpStatus in 64-bit too.
Turns out that Monty didn't intend for the int-flavored representation of
HttpStatus to expand to 64 bits even when unsigned long is that wide. So
change the implicit conversion operator, and its uses, to U32 instead. That
produces a consistent toHex() result for both 32-bit and 64-bit builds.
2016-12-19 16:30:19 -05:00
Nat Goodspeed 1df282efa1 DRTVWR-418: Fix streamtools test.
When std::istream::good() returns false, presumably we can no longer rely on
get() returning valid data. Certain streamtools tests were assuming that get()
would return the empty string at EOF, but in fact it appears that it left the
previous buffer contents unmodified.
2016-12-19 15:58:52 -05:00
Nat Goodspeed fd79bb9c7d DRTVWR-418: Merge backout of TYPE_INDEX / TYPE_MAX change 2016-12-17 11:09:48 -05:00
Nat Goodspeed 4c95587dc3 Backed out changeset bb47510bda62: don't change TYPE_MAX.
Ruslan points out that changing TYPE_MAX could lead to extra (useless) render
passes. We will have to solve the TYPE_INDEX > TYPE_MAX problem another way.
2016-12-17 11:09:09 -05:00
Nat Goodspeed 1298961066 DRTVWR-418: Update dubious llvertexbuffer.cpp cast comment.
Ruslan assures me that in fact this usage is valid.
2016-12-17 11:07:20 -05:00
Nat Goodspeed 050294a23c DRTVWR-418: Fix a (correct) clang correctness complaint.
LLStatGraph::Threshold has an operator<(const Threshold& other) -- but because
the method itself wasn't marked const, it could only be used on a non-const
instance. This change fixes a case when it was applied to const instances.
2016-12-16 19:14:55 -05:00
Nat Goodspeed c1ae63a872 DRTVWR-418: Work around dubious cast from S32 to GLvoid*
when passing -- something -- to glVertexAttribPointerARB() in
LLVertexBuffer::setupVertexArray().
2016-12-16 19:08:24 -05:00
Nat Goodspeed a4b0159d57 DRTVWR-418: Adjust HttpStatus::toHex() test for 64-bit result. 2016-12-16 19:05:59 -05:00
Nat Goodspeed 93268cb47a DRTVWR-418: Put TYPE_INDEX within TYPE_MAX: stop undefined indexing.
LLVertexBuffer::TYPE_INDEX was past TYPE_MAX, which is used to set the maximum
sizes of various (scattered) arrays, bleh. The alarm bells that this SHOULD
set off are indeed correct: TYPE_INDEX was being used to index at least one of
those arrays, meaning we've been indexing past the end of that array, meaning
undefined behavior.

The enum that defines both TYPE_INDEX and TYPE_MAX provides a helpful comment
indicating what things must be updated when modifying the enum. (Far better to
define things centrally in a single place... but another time.) Update the
designated arrays to include a final TYPE_INDEX entry. Contents of those
entries are wild guesses -- but even wild guesses are better than completely
indeterminate data.
2016-12-16 17:03:45 -05:00
Nat Goodspeed aa5a591aa7 Automated merge with ssh://bitbucket.org/lindenlab/viewer64 2016-12-16 08:55:38 -05:00
Callum Prentice c9f6905e60 Pull in an updated version of FMODEx with crash fixes (version 4.44.61 -> 4.44.64) 2016-12-15 16:24:50 -08:00
Nat Goodspeed 89cd49f60f DRTVWR-418: -Wl,-no_compact_unwind switch breaks exception catching!
In a clang 64-bit compile, with that switch set in CMAKE_CXX_LINK_FLAGS, we
cannot catch any user exception. This shows up right away because TUT relies
on internal exceptions to walk through test<n>() test methods, but of course
being unable to catch any exceptions in the viewer would be just as bad.

A quick Google search turned up lots of people mentioning -no_compact_unwind
without finding any documentation about what it's supposed to be good for. But
since no tests work with it, whereas they work without it -- kill it.
2016-12-15 16:41:30 -05:00