Merging from FS tip.

Tonya Souther 2014-06-27 08:47:21 -05:00
commit 52dfd7b31e
32 changed files with 388 additions and 1247 deletions

View File

@ -158,9 +158,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>2dfcd809e747f714b3fe0bf82a175812</string>
<string>508c560cb2ac234e62efe2d4d5049789</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-apr/rev/259951/arch/Darwin/installer/apr_suite-1.4.5-darwin-20120618.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/apr_suite-1.4.5-darwin-20140519u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -218,9 +218,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>5c588beb693030f321dcf23d06ed934a</string>
<string>e3e2d26c6d15667c5ceddcec68ae7c32</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/ares-1.7.5-darwin-20131027u.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/ares-1.10.0-darwin-20140521u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -278,9 +278,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>427a2adfc293fad4ff516bdbacb8d817</string>
<string>1eb36db04aa34dd2a9fcd7af1ff14d45</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/boost-1.52.0-darwin-20130709.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/boost-1.52.0-darwin-20140518u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -338,9 +338,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>480b27a0cb39a4adfcdeabef895de3e1</string>
<string>dc28ae49a8917ad39d9432b86ff91c82</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-colladadom/rev/227230/arch/Darwin/installer/colladadom-2.2-darwin-20110420.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/colladadom-2.2-darwin-20140519u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -398,9 +398,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>e7c8008b524fe9105955cb292fcaac66</string>
<string>b1954c2c6fefb38a312a610f0adcbb11</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/curl-7.24.0-darwin-20131112u.tar.bz2</string>
<string>http://bitbucket.org/cinderblocks/darwin64-libs/downloads/curl-7.37.0-darwin-20140605u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -626,9 +626,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>b3a3849d44710ade63e8951c936ca829</string>
<string>600080e0ee370be7c4f563215c4f0033</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/expat-2.0.1-darwin-20131028u.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/expat-2.0.1-darwin-20140522u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -1598,9 +1598,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>ad7768b85116c3016a36151e0b7b5001</string>
<string>b7070be15ab964fc5b3c1e3be25adb40</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/libpng-1.5.1-darwin-20131112u.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/libpng-1.5.1-darwin-20140521u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -2088,9 +2088,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>e849bc2b779fb7cc5e81aeb021a542c0</string>
<string>1772c222adf5376451bc320d49946d05</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/229529/arch/Darwin/installer/ogg_vorbis-1.2.2-1.3.2-darwin-20110510.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/ogg_vorbis-1.3.1-1.3.4-darwin-20140521u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -2148,9 +2148,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>fb0bd369c8c34cdb783de13f2689a34f</string>
<string>86f2c270b64be8140e2c622b06d34034</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/openssl-1.0.1h-darwin-20140606.tar.bz2</string>
<string>http://bitbucket.org/cinderblocks/darwin64-libs/downloads/openssl-1.0.1h-darwin-20140605u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -2260,9 +2260,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>4be51c7cca7d84831e30b63279df7ae5</string>
<string>bd42f49f2977ce4aa9bbd04b39999f08</string>
<key>url</key>
<string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-darwin-20110302.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/openjpeg-1.4-darwin-20140524u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -2387,6 +2387,18 @@
<string>slplugin_x86</string>
<key>platforms</key>
<map>
<key>darwin</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>c86e0a8e3977e6e27a61f78d625295d3</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/slplugin_x86-1.0-darwin-20140410.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
</map>
<key>windows</key>
<map>
<key>archive</key>
@ -2588,9 +2600,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>591ecfbf877e28c01ed8fe857a5316c3</string>
<string>40f752c0c22c02a5b29217245d6bc230</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/zlib-1.2.8-darwin-20140606.tar.bz2</string>
<string>http://bitbucket.org/cinderblocks/darwin64-libs/downloads/zlib-1.2.8-darwin-20140527u.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>

View File

@ -88,9 +88,9 @@ add_subdirectory(${VIEWER_PREFIX}test)
endif (LL_TESTS OR NOT STANDALONE)
# viewer media plugins
if( NOT WINDOWS OR NOT ND_BUILD64BIT_ARCH )
if( NOT (WINDOWS OR DARWIN) OR NOT ND_BUILD64BIT_ARCH )
add_subdirectory(${LIBS_OPEN_PREFIX}media_plugins)
endif( NOT WINDOWS OR NOT ND_BUILD64BIT_ARCH )
endif( NOT (WINDOWS OR DARWIN) OR NOT ND_BUILD64BIT_ARCH )
# <FS:AW opensim currency support>
#teapot helper library

View File

@ -320,11 +320,12 @@ if (LINUX OR DARWIN)
set(GCC_WARNINGS "${GCC_WARNINGS} -Werror")
endif (NOT GCC_DISABLE_FATAL_WARNINGS)
if (XCODE_VERSION GREATER 4.9)
set(GCC_CXX_WARNINGS "$[GCC_WARNINGS] -Wno-reorder -Wno-non-virtual-dtor -Wno-format-extra-args -Wunused-function -Wunused-variable")
else (XCODE_VERSION GREATER 4.9)
if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND DARWIN AND XCODE_VERSION GREATER 4.9)
set(GCC_CXX_WARNINGS "$[GCC_WARNINGS] -Wno-reorder -Wno-unused-const-variable -Wno-format-extra-args -Wno-unused-private-field -Wno-unused-function -Wno-tautological-compare -Wno-empty-body -Wno-unused-variable -Wno-unused-value")
else (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND DARWIN AND XCODE_VERSION GREATER 4.9)
#elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
set(GCC_CXX_WARNINGS "${GCC_WARNINGS} -Wno-reorder -Wno-non-virtual-dtor")
endif (XCODE_VERSION GREATER 4.9)
endif ()
set(CMAKE_C_FLAGS "${GCC_WARNINGS} ${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${GCC_CXX_WARNINGS} ${CMAKE_CXX_FLAGS}")

View File

@ -16,9 +16,8 @@ if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/n
else (DEFINED ENV{revision})
find_program(MERCURIAL hg)
find_program(WORDCOUNT wc)
find_program(SED sed)
if (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
if (DEFINED MERCURIAL AND DEFINED SED)
execute_process(
# <FS:TS> FIRE-11737: Reverting to old revisions shows tip in build string
# This command gets the revision number of the current
@ -30,23 +29,20 @@ if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/n
#COMMAND ${WORDCOUNT} -l
#COMMAND ${SED} "s/ //g"
COMMAND ${MERCURIAL} identify -n
COMMAND ${SED} "s/+//" # [CR] Strip off any + from the revision number
OUTPUT_VARIABLE VIEWER_VERSION_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# <FS:TS> Now strip off a trailing + if it's there, showing that
# there are uncommitted changes.
string (REGEX REPLACE "\\+$" "" VIEWER_VERSION_REVISION ${VIEWER_VERSION_REVISION})
# </FS:TS> FIRE-11737
if ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
message("Revision (from hg) ${VIEWER_VERSION_REVISION}")
else ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
message("Revision not set (repository not found?); using 0")
set(VIEWER_VERSION_REVISION 0 )
endif ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
else (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
message("Revision not set: 'hg', 'wc' or 'sed' not found; using 0")
else (DEFINED MERCURIAL AND DEFINED SED)
message("Revision not set: 'hg' or 'sed' not found; using 0")
set(VIEWER_VERSION_REVISION 0)
endif (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
endif (DEFINED MERCURIAL AND DEFINED SED)
endif (DEFINED ENV{revision})
message("Building '${VIEWER_CHANNEL}' Version ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")
else ( EXISTS ${VIEWER_VERSION_BASE_FILE} )

View File

@ -14,6 +14,12 @@ else (STANDALONE)
optimized libcurl.lib)
else (WINDOWS)
set(CURL_LIBRARIES libcurl.a)
if (DARWIN)
list(APPEND CURL_LIBRARIES
idn
iconv
)
endif (DARWIN)
endif (WINDOWS)
set(CURL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
endif (STANDALONE)

View File

@ -241,7 +241,7 @@ elseif(DARWIN)
libexpat.1.5.2.dylib
libexpat.dylib
libGLOD.dylib
libllqtwebkit.dylib
#libllqtwebkit.dylib
libminizip.a
libndofdev.dylib
libhunspell-1.3.0.dylib
@ -251,6 +251,13 @@ elseif(DARWIN)
libgrowl++.dylib
)
# <FS:ND> libllqtwebkit.dylib comes from a prebuild slplugin. It needs to be fetched from somewhere else
# when building x64/universal. Probably it's best to copy it in fs_viewer_manifest.py for those cases.
if( NOT ND_BUILD64BIT_ARCH )
set(release_files ${release_files} libllqtwebkit.dylib )
endif( NOT ND_BUILD64BIT_ARCH )
# </FS:ND>
# <FS:ND> We only ever need google breakpad when crash reporting is used
if(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)
set(release_files ${release_files} "libexception_handler.dylib")

View File

@ -10,8 +10,11 @@
# WINDOWS - Windows
if( ${NDTARGET_ARCH} STREQUAL "x64" )
set( ND_BUILD64BIT_ARCH ON )
endif( ${NDTARGET_ARCH} STREQUAL "x64" )
set( ND_BUILD64BIT_ARCH ON )
elseif( ${NDTARGET_ARCH} STREQUAL "universal" )
set( ND_BUILD64BIT_ARCH ON )
set( OSX_UNIVERSAL_ARCH ON )
endif()
# Relative and absolute paths to subtrees.
@ -165,34 +168,43 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
endif (XCODE_VERSION GREATER 4.9)
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
if (LL_RELEASE_FOR_DOWNLOAD)
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)
else (LL_RELEASE_FOR_DOWNLOAD)
set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf)
endif (LL_RELEASE_FOR_DOWNLOAD)
# Build only for i386 by default, system default on MacOSX 10.6 is x86_64
if (NOT CMAKE_OSX_ARCHITECTURES)
set(CMAKE_OSX_ARCHITECTURES i386)
set(CMAKE_OSX_ARCHITECTURES "i386")
if(ND_BUILD64BIT_ARCH)
set(CMAKE_OSX_ARCHITECTURES "x86_64")
endif(ND_BUILD64BIT_ARCH)
if(OSX_UNIVERSAL_ARCH)
set(CMAKE_OSX_ARCHITECTURES "i386;x86_64")
endif(OSX_UNIVERSAL_ARCH)
endif (NOT CMAKE_OSX_ARCHITECTURES)
# [FS:CR] Can't build ppc since forever.
# if (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
# set(ARCH universal)
# else (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
# if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
# set(ARCH ppc)
# else (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
# set(ARCH i386)
# endif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ppc")
# endif (CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
if (CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
error("Can't build on PowerPC. You need an upgrade.")
endif (CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
# *TODO: Universal Build
set(ARCH i386)
if(ND_BUILD64BIT_ARCH)
set(ARCH x86_64)
endif(ND_BUILD64BIT_ARCH)
if(OSX_UNIVERSAL_ARCH)
set(ARCH universal)
endif(OSX_UNIVERSAL_ARCH)
# [/FS:CR]
set(LL_ARCH ${ARCH}_darwin)
set(LL_ARCH_DIR universal-darwin)
set(WORD_SIZE 32)
if(ND_BUILD64BIT_ARCH)
set(WORD_SIZE 64)
else (ND_BUILD64BIT_ARCH)
set(WORD_SIZE 32)
endif(ND_BUILD64BIT_ARCH)
endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# Default deploy grid

View File

@ -7,11 +7,13 @@ if (NOT STANDALONE)
use_prebuilt_binary(slvoice)
use_prebuilt_binary(fontconfig)
if( WINDOWS )
if( ND_BUILD64BIT_ARCH )
if( ND_BUILD64BIT_ARCH )
if( WINDOWS )
use_prebuilt_binary( slplugin_x86 )
use_prebuilt_binary( wix )
endif( ND_BUILD64BIT_ARCH )
endif( WINDOWS )
elseif(DARWIN)
use_prebuilt_binary(slplugin_x86)
endif()
endif( ND_BUILD64BIT_ARCH )
endif(NOT STANDALONE)

View File

@ -80,7 +80,7 @@ void LLMutex::lock()
#if MUTEX_DEBUG
// Have to have the lock before we can access the debug info
U32 id = LLThread::currentID();
uintptr_t id = LLThread::currentID();
if (mIsLocked[id] != FALSE)
LL_ERRS() << "Already locked in Thread: " << id << LL_ENDL;
mIsLocked[id] = TRUE;
@ -99,7 +99,7 @@ void LLMutex::unlock()
#if MUTEX_DEBUG
// Access the debug info while we have the lock
U32 id = LLThread::currentID();
uintptr_t id = LLThread::currentID();
if (mIsLocked[id] != TRUE)
LL_ERRS() << "Not locked in Thread: " << id << LL_ENDL;
mIsLocked[id] = FALSE;
@ -128,7 +128,7 @@ bool LLMutex::isSelfLocked()
return mLockingThread == LLThread::currentID();
}
U32 LLMutex::lockingThread() const
uintptr_t LLMutex::lockingThread() const
{
return mLockingThread;
}
@ -149,7 +149,7 @@ bool LLMutex::trylock()
#if MUTEX_DEBUG
// Have to have the lock before we can access the debug info
U32 id = LLThread::currentID();
uintptr_t id = LLThread::currentID();
if (mIsLocked[id] != FALSE)
LL_ERRS() << "Already locked in Thread: " << id << LL_ENDL;
mIsLocked[id] = TRUE;
@ -184,7 +184,7 @@ void LLCondition::wait()
apr_thread_mutex_lock(mAPRMutexp);
#if MUTEX_DEBUG
// avoid asserts on destruction in non-release builds
U32 id = LLThread::currentID();
uintptr_t id = LLThread::currentID();
mIsLocked[id] = TRUE;
#endif
}

View File

@ -53,18 +53,18 @@ public:
void unlock(); // undefined behavior when called on mutex not being held
bool isLocked(); // non-blocking, but does do a lock/unlock so not free
bool isSelfLocked(); //return true if locked in a same thread
U32 lockingThread() const; //get ID of locking thread
uintptr_t lockingThread() const; //get ID of locking thread
protected:
apr_thread_mutex_t *mAPRMutexp;
mutable U32 mCount;
mutable U32 mLockingThread;
mutable uintptr_t mLockingThread;
apr_pool_t *mAPRPoolp;
BOOL mIsLocalPool;
#if MUTEX_DEBUG
std::map<U32, BOOL> mIsLocked;
std::map<uintptr_t, BOOL> mIsLocked;
#endif
};

View File

@ -141,7 +141,7 @@ namespace LLPredicate
void require(ENUM e)
{
mRule.set(e, require);
mRule.set(e, this->require);
}
void allow(ENUM e)
@ -164,7 +164,7 @@ namespace LLPredicate
return (mRule && value).someSet() && (!mRule && value).someSet();
}
bool acceptsAll() const
bool acceptsAll() const
{
return mRule.allSet();
}

View File

@ -102,7 +102,7 @@ private:
#if LL_REF_COUNT_DEBUG
LLMutex* mMutexp ;
mutable U32 mLockedThreadID ;
mutable uintptr_t mLockedThreadID ;
mutable BOOL mCrashAtUnlock ;
#endif
};

View File

@ -98,21 +98,21 @@ void set_thread_name( DWORD dwThreadID, const char* threadName)
#if LL_DARWIN
// statically allocated thread local storage not supported in Darwin executable formats
#elif LL_WINDOWS
U32 __declspec(thread) sThreadID = 0;
uintptr_t __declspec(thread) sThreadID = 0;
#elif LL_LINUX
U32 __thread sThreadID = 0;
uintptr_t __thread sThreadID = 0;
#endif
U32 LLThread::sIDIter = 0;
uintptr_t LLThread::sIDIter = 0;
LL_COMMON_API void assert_main_thread()
{
static U32 s_thread_id = LLThread::currentID();
static uintptr_t s_thread_id = LLThread::currentID();
if (LLThread::currentID() != s_thread_id)
{
LL_WARNS() << "Illegal execution from thread id " << (S32) LLThread::currentID()
<< " outside main thread " << (S32) s_thread_id << LL_ENDL;
LL_WARNS() << "Illegal execution from thread id " << LLThread::currentID()
<< " outside main thread " << s_thread_id << LL_ENDL;
}
}
@ -348,11 +348,11 @@ void LLThread::setQuitting()
}
// static
U32 LLThread::currentID()
uintptr_t LLThread::currentID()
{
#if LL_DARWIN
// statically allocated thread local storage not supported in Darwin executable formats
return (U32)apr_os_thread_current();
return reinterpret_cast<uintptr_t>(apr_os_thread_current());
#else
return sThreadID;
#endif

View File

@ -45,7 +45,7 @@ class LL_COMMON_API LLThread
{
private:
friend class LLMutex;
static U32 sIDIter;
static uintptr_t sIDIter;
public:
typedef enum e_thread_status
@ -62,7 +62,7 @@ public:
bool isQuitting() const { return (QUITTING == mStatus); }
bool isStopped() const { return (STOPPED == mStatus); }
static U32 currentID(); // Return ID of current thread
static uintptr_t currentID(); // Return ID of current thread
static void yield(); // Static because it can be called by the main thread, which doesn't have an LLThread data structure.
public:
@ -87,7 +87,7 @@ public:
apr_pool_t *getAPRPool() { return mAPRPoolp; }
LLVolatileAPRPool* getLocalAPRFilePool() { return mLocalAPRFilePoolp ; }
U32 getID() const { return mID; }
uintptr_t getID() const { return mID; }
// Called by threads *not* created via LLThread to register some
// internal state used by LLMutex. You must call this once early
@ -109,7 +109,7 @@ protected:
apr_pool_t *mAPRPoolp;
BOOL mIsLocalPool;
EThreadStatus mStatus;
U32 mID;
uintptr_t mID;
LLTrace::ThreadRecorder* mRecorder;
//a local apr_pool for APRFile operations in this thread. If it exists, LLAPRFile::sAPRFilePoolp should not be used.

View File

@ -40,9 +40,7 @@ HttpStatus::type_enum_t LLCORE;
HttpStatus::operator unsigned long() const
{
static const int shift(sizeof(unsigned long) * 4);
unsigned long result(((unsigned long) mType) << shift | (unsigned long) (int) mStatus);
unsigned long result(((unsigned long) mType) << 16 | (unsigned long) (int) mStatus);
return result;
}
@ -52,7 +50,7 @@ std::string HttpStatus::toHex() const
std::ostringstream result;
result.width(8);
result.fill('0');
result << std::hex << operator unsigned long();
result << std::hex << operator unsigned long() << std::dec;
return result.str();
}

View File

@ -130,8 +130,8 @@ std::string getStartupStateFromLog(std::string& sllog)
std::string startup_state = "STATE_FIRST";
std::string startup_token = "Startup state changing from ";
int index = sllog.rfind(startup_token);
if (index < 0 || index + startup_token.length() > sllog.length()) {
size_t index = sllog.rfind(startup_token);
if (index != std::string::npos || index + startup_token.length() > sllog.length()) {
return startup_state;
}

View File

@ -1727,7 +1727,7 @@ void LLCurl::ssl_locking_callback(int mode, int type, const char *file, int line
//static
unsigned long LLCurl::ssl_thread_id(void)
{
return LLThread::currentID();
return static_cast<unsigned long>(LLThread::currentID());
}
#endif

View File

@ -94,7 +94,7 @@ LLDir_Mac::LLDir_Mac()
// MBW -- This keeps the mac application from finding other things.
// If this is really for skins, it should JUST apply to skins.
U32 build_dir_pos = mExecutableDir.rfind("/build-darwin-");
size_t build_dir_pos = mExecutableDir.rfind("/build-darwin-");
if (build_dir_pos != std::string::npos)
{
// ...we're in a dev checkout

View File

@ -27,6 +27,11 @@
#import <Cocoa/Cocoa.h>
#import "llopenglview-objc.h"
// [Cinder] Override NSApplication to give us access to sendEvent
@interface LLNSApplication : NSApplication
@end
// [/Cinder]
@interface LLAppDelegate : NSObject <NSApplicationDelegate> {
LLNSWindow *window;
NSWindow *inputWindow;

View File

@ -412,18 +412,11 @@ attributedStringInfo getSegments(NSAttributedString *str)
[[theEvent charactersIgnoringModifiers] characterAtIndex:0] != NSRightArrowFunctionKey)
{
[(LLAppDelegate*)[NSApp delegate] showInputWindow:true withEvent:theEvent];
} else
}
else
{
[[self inputContext] handleEvent:theEvent];
}
// OS X intentionally does not send us key-up information on cmd-key combinations.
// This behaviour is not a bug, and only applies to cmd-combinations (no others).
// Since SL assumes we receive those, we fake it here.
if (mModifiers & NSCommandKeyMask && !mHasMarkedText)
{
callKeyUp([theEvent keyCode], mModifiers);
}
}
- (void)flagsChanged:(NSEvent *)theEvent {

View File

@ -2362,7 +2362,7 @@ if (DARWIN)
set(MACOSX_BUNDLE_BUNDLE_VERSION "${VIEWER_SHORT_VERSION}${VIEWER_MACOSX_PHASE}${VIEWER_REVISION}")
set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2010-2014 The Phoenix Firestorm Project, Inc.")
set(MACOSX_BUNDLE_NSMAIN_NIB_FILE "Firestorm.nib")
set(MACOSX_BUNDLE_NSPRINCIPAL_CLASS "NSApplication")
set(MACOSX_BUNDLE_NSPRINCIPAL_CLASS "LLNSApplication")
set_target_properties(
${VIEWER_BINARY_NAME}
@ -2403,7 +2403,7 @@ if (DARWIN)
generate_viewer_version
)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit mac-crash-logger)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin mac-crash-logger)
if (ENABLE_SIGNING)
set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}")

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -822,7 +822,7 @@ void FSFloaterNearbyChat::onChatBoxKeystroke()
{
suffix = wstring_to_utf8str(raw_text.substr(cur_pos)); // Text after search string
}
U32 last_space = prefix.rfind(" ");
size_t last_space = prefix.rfind(" ");
std::string pattern = prefix.substr(last_space + 1, prefix.length() - last_space - 1); // Search pattern
prefix = prefix.substr(0, last_space + 1);

View File

@ -185,7 +185,7 @@ void FSNearbyChatControl::onKeystroke(LLLineEditor* caller,void* userdata)
{
suffix = wstring_to_utf8str(raw_text.substr(cur_pos)); // Text after search string
}
U32 last_space = prefix.rfind(" ");
size_t last_space = prefix.rfind(" ");
std::string pattern = prefix.substr(last_space + 1, prefix.length() - last_space - 1); // Search pattern
prefix = prefix.substr(0, last_space + 1);

View File

@ -28,6 +28,21 @@
#include "llwindowmacosx-objc.h"
#include <Carbon/Carbon.h> // Used for Text Input Services ("Safe" API - it's supported)
// [Cinder] We need to override sendEvent in NSApplication and force those
// Apple bastards to send us Command keyUp events!
@implementation LLNSApplication
- (void)sendEvent:(NSEvent *)event {
// Fuck you, conventions!
if ([event type] == NSKeyUp && ([event modifierFlags] & NSCommandKeyMask))
[[self keyWindow] sendEvent:event];
else
[super sendEvent:event];
}
@end
// [Cinder]
@implementation LLAppDelegate
@synthesize window;

View File

@ -263,7 +263,7 @@ bool LLAppViewerMacOSX::restoreErrorTrap()
unsigned int reset_count = 0;
#define SET_SIG(S) sigaction(SIGABRT, &act, &old_act); \
if((unsigned int)act.sa_sigaction != (unsigned int) old_act.sa_sigaction) \
if((uintptr_t)act.sa_sigaction != (uintptr_t) old_act.sa_sigaction) \
++reset_count;
// Synchronous signals
SET_SIG(SIGABRT)

View File

@ -948,7 +948,7 @@ bool LLChatLogParser::parse(std::string& raw, LLSD& im, const LLSD& parse_params
// Ansariel: Handle the case an IM was stored in nearby chat history
if (name == "IM:")
{
U32 divider_pos = stuff.find(NAME_TEXT_DIVIDER, 3);
size_t divider_pos = stuff.find(NAME_TEXT_DIVIDER, 3);
if (divider_pos != std::string::npos && divider_pos < (stuff.length() - NAME_TEXT_DIVIDER.length()))
{
im[LL_IM_FROM] = stuff.substr(0, divider_pos);

View File

@ -634,7 +634,7 @@ void LLPanelLogin::getFields(LLPointer<LLCredential>& credential,
std::string username = sInstance->getChild<LLUICtrl>("username_combo")->getValue().asString();
LLStringUtil::trim(username);
// <FS:CR>
U32 arobase = username.find("@");
size_t arobase = username.find("@");
if(arobase != std::string::npos)
username = username.substr(0, arobase);
// </FS:CR>
@ -1221,7 +1221,7 @@ void LLPanelLogin::addUsersToCombo(BOOL show_server)
std::string credname = name;
std::string gridname = name;
U32 arobase = gridname.find("@");
size_t arobase = gridname.find("@");
if (arobase != std::string::npos && arobase + 1 < gridname.length() && arobase > 1)
{
gridname = gridname.substr(arobase + 1, gridname.length() - arobase - 1);
@ -1381,7 +1381,7 @@ std::string LLPanelLogin::credentialName()
std::string username = sInstance->getChild<LLUICtrl>("username_combo")->getValue().asString();
LLStringUtil::trim(username);
U32 arobase = username.find("@");
size_t arobase = username.find("@");
if (arobase != std::string::npos && arobase + 1 < username.length())
username = username.substr(0,arobase);
LLStringUtil::trim(username);

View File

@ -3048,7 +3048,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
// The group notice packet does not have an AgentID. Obtain one from the name cache.
// If last name is "Resident" strip it out so the cache name lookup works.
U32 index = original_name.find(" Resident");
size_t index = original_name.find(" Resident");
if (index != std::string::npos)
{
original_name = original_name.substr(0, index);

View File

@ -835,7 +835,7 @@ class Windows_i686_Manifest(ViewerManifest):
self.package_file = installer_file
class Darwin_i386_Manifest(ViewerManifest):
class DarwinManifest(ViewerManifest):
def is_packaging_viewer(self):
# darwin requires full app bundle packaging even for debugging.
return True
@ -860,7 +860,7 @@ class Darwin_i386_Manifest(ViewerManifest):
# most everything goes in the Resources directory
if self.prefix(src="", dst="Resources"):
super(Darwin_i386_Manifest, self).construct()
super(DarwinManifest, self).construct()
if self.prefix("cursors_mac"):
self.path("*.tif")
@ -1186,6 +1186,41 @@ class Darwin_i386_Manifest(ViewerManifest):
self.args['viewer_flavor']))
class Darwin_i386_Manifest(DarwinManifest):
def construct(self):
super(Darwin_i386_Manifest, self).construct()
class Darwin_universal_Manifest(DarwinManifest):
def construct(self):
super(Darwin_universal_Manifest, self).construct()
if(self.prefix(src="../packages/bin_x86", dst="Contents/Resources/")):
self.path("slplugin.app")
if self.prefix(src = "llplugin", dst="llplugin"):
self.path("media_plugin_quicktime.dylib")
self.path("media_plugin_webkit.dylib")
self.path("libllqtwebkit.dylib")
self.end_prefix("llplugin")
self.end_prefix("../packages/bin_x86");
class Darwin_x86_64_Manifest(DarwinManifest):
def construct(self):
super(Darwin_x86_64_Manifest, self).construct()
if(self.prefix("../packages/bin_x86", dst="Contents/Resources/")):
self.path("slplugin.app", "slplugin.app")
if self.prefix(src = "llplugin", dst="llplugin"):
self.path("media_plugin_quicktime.dylib", "media_plugin_quicktime.dylib")
self.path("media_plugin_webkit.dylib", "media_plugin_webkit.dylib")
self.path("libllqtwebkit.dylib", "libllqtwebkit.dylib")
self.end_prefix("llplugin")
self.end_prefix("../packages/bin_x86");
class LinuxManifest(ViewerManifest):

View File

@ -410,6 +410,11 @@ if [ $WANTS_CONFIG -eq $TRUE ] ; then
if [ $PLATFORM == "darwin" ] ; then
TARGET="Xcode"
if [ "${AUTOBUILD_ARCH}" == "x64" ]
then
TARGET_ARCH="x64"
WORD_SIZE=64
fi
elif [ \( $PLATFORM == "linux32" \) -o \( $PLATFORM == "linux64" \) ] ; then
TARGET="Unix Makefiles"
if [ "${AUTOBUILD_ARCH}" == "x64" ]