diff --git a/autobuild.xml b/autobuild.xml
index 0e319d5fb9..1ad935b229 100755
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -158,9 +158,9 @@
archive
name
darwin
@@ -218,9 +218,9 @@
archive
name
darwin
@@ -278,9 +278,9 @@
archive
name
darwin
@@ -338,9 +338,9 @@
archive
name
darwin
@@ -398,9 +398,9 @@
archive
name
darwin
@@ -626,9 +626,9 @@
archive
name
darwin
@@ -1598,9 +1598,9 @@
archive
name
darwin
@@ -1793,58 +1793,6 @@
version
0.2
- llphysicsextensions_stub
-
llqtwebkit
license
@@ -2088,9 +2036,9 @@
archive
hash
- e849bc2b779fb7cc5e81aeb021a542c0
+ 1772c222adf5376451bc320d49946d05
url
- 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
+ http://bitbucket.org/cinderblocks/darwin64-libs/downloads/ogg_vorbis-1.3.1-1.3.4-darwin-20140521u.tar.bz2
name
darwin
@@ -2148,9 +2096,9 @@
archive
hash
- a265c0f38a7934fbe7ae7c020ddddf2c
+ 75a77beadd5dbf5f12a2c59c64763045
url
- http://downloads.phoenixviewer.com/openssl-1.0.0g-darwin-20131112u.tar.bz2
+ http://bitbucket.org/cinderblocks/darwin64-libs/downloads/openssl-1.0.1g-darwin-20140521u.tar.bz2
name
darwin
@@ -2260,9 +2208,9 @@
archive
hash
- 4be51c7cca7d84831e30b63279df7ae5
+ bd42f49f2977ce4aa9bbd04b39999f08
url
- http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/openjpeg-1.4-darwin-20110302.tar.bz2
+ http://bitbucket.org/cinderblocks/darwin64-libs/downloads/openjpeg-1.4-darwin-20140524u.tar.bz2
name
darwin
@@ -2380,13 +2328,25 @@
slplugin_x86
license
- OpenSSL/LGPL
+ LGPL
license_file
LICENSES/slplugin.txt
name
slplugin_x86
platforms
+ darwin
+
+ archive
+
+ hash
+ c86e0a8e3977e6e27a61f78d625295d3
+ url
+ http://bitbucket.org/cinderblocks/darwin64-libs/downloads/slplugin_x86-1.0-darwin-20140410.tar.bz2
+
+ name
+ darwin
+
windows
archive
@@ -2817,7 +2777,6 @@
name
ReleaseFS
-
ReleaseFS_AVX
configure
@@ -2835,7 +2794,6 @@
name
ReleaseFS_AVX
-
ReleaseFS_open
configure
@@ -3142,7 +3100,6 @@
name
ReleaseFS
-
ReleaseFS_AVX
build
@@ -3171,7 +3128,6 @@
name
ReleaseFS_AVX
-
ReleaseFS_open
build
@@ -3460,7 +3416,6 @@
name
ReleaseFS
-
ReleaseFS_AVX
build
@@ -3485,7 +3440,6 @@
name
ReleaseFS_AVX
-
ReleaseFS_open
build
@@ -3911,7 +3865,6 @@
name
ReleaseFS
-
ReleaseFS_AVX
build
@@ -3949,7 +3902,6 @@
name
ReleaseFS_AVX
-
ReleaseFS_open
build
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index a698f7515d..f176cb8408 100755
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -88,9 +88,9 @@ add_subdirectory(${VIEWER_PREFIX}test)
endif (LL_TESTS OR NOT STANDALONE)
# viewer media plugins
-if( NOT ( WINDOWS AND ND_BUILD64BIT_ARCH ) )
+if( NOT ( (WINDOWS OR DARWIN) AND ND_BUILD64BIT_ARCH ) )
add_subdirectory(${LIBS_OPEN_PREFIX}media_plugins)
-endif( NOT ( WINDOWS AND ND_BUILD64BIT_ARCH ) )
+endif( NOT ( (WINDOWS OR DARWIN) AND ND_BUILD64BIT_ARCH ) )
#
#teapot helper library
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 844e03248e..12f88496b5 100755
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -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
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 6700bd72b1..00d3147367 100755
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -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)
diff --git a/indra/llcommon/llthread.cpp b/indra/llcommon/llthread.cpp
index 72878987c8..cff3e46875 100755
--- a/indra/llcommon/llthread.cpp
+++ b/indra/llcommon/llthread.cpp
@@ -64,11 +64,11 @@ U32 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)
{
- llwarns << "Illegal execution from thread id " << (S32) LLThread::currentID()
- << " outside main thread " << (S32) s_thread_id << llendl;
+ llwarns << "Illegal execution from thread id " << (intptr_t) LLThread::currentID()
+ << " outside main thread " << (intptr_t) s_thread_id << llendl;
}
}
@@ -281,9 +281,9 @@ void LLThread::setQuitting()
}
// static
-U32 LLThread::currentID()
+uintptr_t LLThread::currentID()
{
- return (U32)apr_os_thread_current();
+ return (uintptr_t)apr_os_thread_current();
}
// static
@@ -401,7 +401,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)
llerrs << "Already locked in Thread: " << id << llendl;
mIsLocked[id] = TRUE;
@@ -425,7 +425,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)
llerrs << "Not locked in Thread: " << id << llendl;
mIsLocked[id] = FALSE;
@@ -488,7 +488,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
}
diff --git a/indra/llcommon/llthread.h b/indra/llcommon/llthread.h
index 8c7143304f..e2d863d141 100755
--- a/indra/llcommon/llthread.h
+++ b/indra/llcommon/llthread.h
@@ -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:
@@ -165,7 +165,7 @@ public:
protected:
apr_thread_mutex_t *mAPRMutexp;
mutable U32 mCount;
- mutable U32 mLockingThread;
+ mutable uintptr_t mLockingThread;
apr_pool_t *mAPRPoolp;
BOOL mIsLocalPool;
diff --git a/indra/llvfs/lldir_mac.cpp b/indra/llvfs/lldir_mac.cpp
index 4bf724aee0..ed6bbcb390 100755
--- a/indra/llvfs/lldir_mac.cpp
+++ b/indra/llvfs/lldir_mac.cpp
@@ -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
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index f69a129542..234f173d7d 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -2391,7 +2391,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}")
diff --git a/indra/newview/fsfloaternearbychat.cpp b/indra/newview/fsfloaternearbychat.cpp
index 8dd1db7f6f..ed9d0e3c26 100644
--- a/indra/newview/fsfloaternearbychat.cpp
+++ b/indra/newview/fsfloaternearbychat.cpp
@@ -829,7 +829,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);
diff --git a/indra/newview/fsnearbychatcontrol.cpp b/indra/newview/fsnearbychatcontrol.cpp
index 4f1d7f0989..d9bbff2c1a 100644
--- a/indra/newview/fsnearbychatcontrol.cpp
+++ b/indra/newview/fsnearbychatcontrol.cpp
@@ -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);
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index 2723f0b90d..9ec6f7b312 100755
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -231,7 +231,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)
diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp
index 77fd5752d4..555c10e030 100755
--- a/indra/newview/lllogchat.cpp
+++ b/indra/newview/lllogchat.cpp
@@ -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);
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index d0f6e0e982..7dd9c47879 100755
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -635,7 +635,7 @@ void LLPanelLogin::getFields(LLPointer& credential,
std::string username = sInstance->getChild("username_combo")->getValue().asString();
LLStringUtil::trim(username);
//
- U32 arobase = username.find("@");
+ size_t arobase = username.find("@");
if(arobase != std::string::npos)
username = username.substr(0, arobase);
//
@@ -1222,7 +1222,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);
@@ -1382,7 +1382,7 @@ std::string LLPanelLogin::credentialName()
std::string username = sInstance->getChild("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);
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index dbd4cce163..6477b7cf47 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3038,7 +3038,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);
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 21e0c12501..7d18c92870 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -833,7 +833,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
@@ -858,7 +858,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")
@@ -1184,6 +1184,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/slplugin");
+
+
+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):