diff --git a/doc/contributions.txt b/doc/contributions.txt
index 258e139bc..882dca18c 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -72,8 +72,10 @@ Aleric Inglewood
VWR-14914
VWR-24247
VWR-24312
+ VWR-24315
VWR-24320
VWR-24333
+ VWR-24334
SNOW-47
SNOW-84
SNOW-86
@@ -112,7 +114,9 @@ Aleric Inglewood
IMP-664
IMP-670
IMP-701
+ IMP-702
IMP-734
+ IMP-735
Alissa Sabre
VWR-81
VWR-83
diff --git a/etc/message.xml b/etc/message.xml
index 847f483aa..04cdbc8f2 100644
--- a/etc/message.xml
+++ b/etc/message.xml
@@ -673,9 +673,6 @@
FetchInventoryDescendents
false
- WebFetchInventoryDescendents
- true
-
FetchInventory
true
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index 33637ab1e..c0e8dc408 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -44,6 +44,7 @@ endif(NOT STANDALONE)
add_custom_target(prepare DEPENDS ${prepare_depends})
add_subdirectory(cmake)
+add_subdirectory(${LIBS_OPEN_PREFIX}cwdebug)
add_subdirectory(${LIBS_OPEN_PREFIX}llaudio)
add_subdirectory(${LIBS_OPEN_PREFIX}llcharacter)
add_subdirectory(${LIBS_OPEN_PREFIX}llcommon)
@@ -75,8 +76,8 @@ if (VIEWER)
add_subdirectory(${LIBS_OPEN_PREFIX}llplugin)
add_subdirectory(${LIBS_OPEN_PREFIX}llui)
- # viewer media plugins
- add_subdirectory(${LIBS_OPEN_PREFIX}media_plugins)
+ # viewer plugins directory
+ add_subdirectory(${LIBS_OPEN_PREFIX}plugins)
# llplugin testbed code (is this the right way to include it?)
#if (NOT LINUX)
@@ -105,6 +106,7 @@ if (VIEWER)
add_dependencies(viewer solaris-crash-logger)
endif (LINUX)
+ add_subdirectory(${VIEWER_PREFIX}newview/statemachine)
add_subdirectory(${VIEWER_PREFIX}newview)
add_dependencies(viewer secondlife-bin)
endif (VIEWER)
diff --git a/indra/cmake/AIStateMachine.cmake b/indra/cmake/AIStateMachine.cmake
new file mode 100644
index 000000000..c1bda40c4
--- /dev/null
+++ b/indra/cmake/AIStateMachine.cmake
@@ -0,0 +1,4 @@
+# -*- cmake -*-
+
+set(AISTATEMACHINE_INCLUDE_DIRS statemachine)
+set(AISTATEMACHINE_LIBRARIES statemachine)
diff --git a/indra/cmake/BasicPluginBase.cmake b/indra/cmake/BasicPluginBase.cmake
new file mode 100644
index 000000000..a4f339272
--- /dev/null
+++ b/indra/cmake/BasicPluginBase.cmake
@@ -0,0 +1,8 @@
+# -*- cmake -*-
+
+
+set(BASIC_PLUGIN_BASE_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/plugins/base_basic/
+ )
+
+set(BASIC_PLUGIN_BASE_LIBRARIES basic_plugin_base)
diff --git a/indra/cmake/Cwdebug.cmake b/indra/cmake/Cwdebug.cmake
new file mode 100644
index 000000000..9568a625f
--- /dev/null
+++ b/indra/cmake/Cwdebug.cmake
@@ -0,0 +1 @@
+set(CWDEBUG_LIBRARIES cwdebug)
diff --git a/indra/cmake/FindMyZLIB.cmake b/indra/cmake/FindMyZLIB.cmake
deleted file mode 100644
index 6d630f1ba..000000000
--- a/indra/cmake/FindMyZLIB.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-# -*- cmake -*-
-
-# - Find zlib
-# Find the ZLIB includes and library
-# This module defines
-# ZLIB_INCLUDE_DIRS, where to find zlib.h, etc.
-# ZLIB_LIBRARIES, the libraries needed to use zlib.
-# ZLIB_FOUND, If false, do not try to use zlib.
-#
-# This FindZLIB is about 43 times as fast the one provided with cmake (2.8.x),
-# because it doesn't look up the version of zlib, resulting in a dramatic
-# speed up for configure (from 4 minutes 22 seconds to 6 seconds).
-#
-# Note: Since this file is only used for standalone, the windows
-# specific parts were left out.
-
-FIND_PATH(ZLIB_INCLUDE_DIR zlib.h
- NO_SYSTEM_ENVIRONMENT_PATH
- )
-
-FIND_LIBRARY(ZLIB_LIBRARY z)
-
-if (ZLIB_LIBRARY AND ZLIB_INCLUDE_DIR)
- SET(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
- SET(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
- SET(ZLIB_FOUND "YES")
-else (ZLIB_LIBRARY AND ZLIB_INCLUDE_DIR)
- SET(ZLIB_FOUND "NO")
-endif (ZLIB_LIBRARY AND ZLIB_INCLUDE_DIR)
-
-if (ZLIB_FOUND)
- if (NOT ZLIB_FIND_QUIETLY)
- message(STATUS "Found ZLIB: ${ZLIB_LIBRARIES}")
- SET(ZLIB_FIND_QUIETLY TRUE)
- endif (NOT ZLIB_FIND_QUIETLY)
-else (ZLIB_FOUND)
- if (ZLIB_FIND_REQUIRED)
- message(FATAL_ERROR "Could not find ZLIB library")
- endif (ZLIB_FIND_REQUIRED)
-endif (ZLIB_FOUND)
-
-mark_as_advanced(
- ZLIB_LIBRARY
- ZLIB_INCLUDE_DIR
- )
-
diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake
index 2b45a1abc..90ed35c81 100644
--- a/indra/cmake/GStreamer010Plugin.cmake
+++ b/indra/cmake/GStreamer010Plugin.cmake
@@ -6,11 +6,13 @@ if (STANDALONE)
pkg_check_modules(GSTREAMER010 REQUIRED gstreamer-0.10)
pkg_check_modules(GSTREAMER010_PLUGINS_BASE REQUIRED gstreamer-plugins-base-0.10)
-elseif (LINUX)
+
+else (STANDALONE)
+
+ # Possibly libxml and glib should have their own .cmake file instead...
use_prebuilt_binary(glib) # gstreamer needs glib
- use_prebuilt_binary(gstreamer)
- # possible libxml should have its own .cmake file instead
use_prebuilt_binary(libxml)
+ use_prebuilt_binary(gstreamer)
set(GSTREAMER010_FOUND ON FORCE BOOL)
set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL)
set(GSTREAMER010_INCLUDE_DIRS
@@ -18,23 +20,47 @@ elseif (LINUX)
${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/glib-2.0
${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/libxml2
)
+
+endif (STANDALONE)
+
+if (WINDOWS)
# We don't need to explicitly link against gstreamer itself, because
# LLMediaImplGStreamer probes for the system's copy at runtime.
- set(GSTREAMER010_LIBRARIES
- gobject-2.0
- gmodule-2.0
- dl
- gthread-2.0
- rt
- glib-2.0
- )
-endif (STANDALONE)
+ set(GSTREAMER010_LIBRARIES
+ libgstvideo
+ libgstaudio
+ libgstbase-0.10
+ libgstreamer-0.10
+ gobject-2.0
+ gmodule-2.0
+ gthread-2.0
+ glib-2.0
+ )
+else (WINDOWS)
+ # We don't need to explicitly link against gstreamer itself, because
+ # LLMediaImplGStreamer probes for the system's copy at runtime.
+ set(GSTREAMER010_LIBRARIES
+ gstvideo-0.10
+ gstaudio-0.10
+ gstbase-0.10
+ gstreamer-0.10
+ gobject-2.0
+ gmodule-2.0
+ dl
+ gthread-2.0
+ rt
+ glib-2.0
+ )
+
+
+endif (WINDOWS)
+
if (GSTREAMER010_FOUND AND GSTREAMER010_PLUGINS_BASE_FOUND)
set(GSTREAMER010 ON CACHE BOOL "Build with GStreamer-0.10 streaming media support.")
+ add_definitions(-DLL_GSTREAMER010_ENABLED=1)
endif (GSTREAMER010_FOUND AND GSTREAMER010_PLUGINS_BASE_FOUND)
-if (GSTREAMER010)
- add_definitions(-DLL_GSTREAMER010_ENABLED=1)
-endif (GSTREAMER010)
+
+
diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index f9b1ef96f..74f2e0cb1 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -3,6 +3,7 @@
INCLUDE(APR)
INCLUDE(LLMath)
INCLUDE(Tut)
+INCLUDE(Cwdebug)
MACRO(ADD_BUILD_TEST_NO_COMMON name parent)
# MESSAGE("${CMAKE_CURRENT_SOURCE_DIR}/tests/${name}_test.cpp")
diff --git a/indra/cmake/LLCommon.cmake b/indra/cmake/LLCommon.cmake
index 2862ba7f0..efb3d004c 100644
--- a/indra/cmake/LLCommon.cmake
+++ b/indra/cmake/LLCommon.cmake
@@ -6,6 +6,7 @@ include(EXPAT)
include(ZLIB)
set(LLCOMMON_INCLUDE_DIRS
+ ${LIBS_OPEN_DIR}/cwdebug
${LIBS_OPEN_DIR}/llcommon
${APR_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 2bddb9517..eaa8a6dc2 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -42,6 +42,7 @@ if (WINDOWS)
wldap32
gdi32
user32
+ dbghelp
)
else (WINDOWS)
set(WINDOWS_LIBRARIES "")
diff --git a/indra/cmake/MediaPluginBase.cmake b/indra/cmake/MediaPluginBase.cmake
index 2be035b64..7e2d30dfa 100644
--- a/indra/cmake/MediaPluginBase.cmake
+++ b/indra/cmake/MediaPluginBase.cmake
@@ -1,8 +1,6 @@
# -*- cmake -*-
+include(BasicPluginBase)
-set(MEDIA_PLUGIN_BASE_INCLUDE_DIRS
- ${LIBS_OPEN_DIR}/media_plugins/base/
- )
-
-set(MEDIA_PLUGIN_BASE_LIBRARIES media_plugin_base)
+set(MEDIA_PLUGIN_BASE_INCLUDE_DIRS ${LIBS_OPEN_DIR}/plugins/base_media ${BASIC_PLUGIN_BASE_INCLUDE_DIRS})
+set(MEDIA_PLUGIN_BASE_LIBRARIES media_plugin_base ${BASIC_PLUGIN_BASE_LIBRARIES})
diff --git a/indra/cwdebug/CMakeLists.txt b/indra/cwdebug/CMakeLists.txt
new file mode 100644
index 000000000..9f423c736
--- /dev/null
+++ b/indra/cwdebug/CMakeLists.txt
@@ -0,0 +1,39 @@
+# -*- cmake -*-
+
+project(cwdebug)
+
+include(00-Common)
+include(LLCommon)
+include(LLMath)
+include(LLMessage)
+include(LLVFS)
+
+include_directories (${CMAKE_CURRENT_SOURCE_DIR})
+
+set(cwdebug_SOURCE_FILES
+ debug.cc
+ )
+
+set(cwdebug_HEADER_FILES
+ CMakeLists.txt
+
+ cwdebug.h
+ sys.h
+ debug.h
+ debug_ostream_operators.h
+ )
+
+set_source_files_properties(${cwdebug_HEADER_FILES}
+ PROPERTIES HEADER_FILE_ONLY TRUE)
+
+if(NOT WORD_SIZE EQUAL 32)
+ if(WINDOWS)
+ add_definitions(/FIXED:NO)
+ else(WINDOWS) # not windows therefore gcc LINUX and DARWIN
+ add_definitions(-fPIC)
+ endif(WINDOWS)
+endif (NOT WORD_SIZE EQUAL 32)
+
+list(APPEND cwdebug_SOURCE_FILES ${cwdebug_HEADER_FILES})
+
+add_library (cwdebug ${cwdebug_SOURCE_FILES})
diff --git a/indra/cwdebug/cwdebug.h b/indra/cwdebug/cwdebug.h
new file mode 100644
index 000000000..37415df3f
--- /dev/null
+++ b/indra/cwdebug/cwdebug.h
@@ -0,0 +1,9 @@
+// We support compiling C++ source files that are not
+// thread-safe, but in that case we assume that they
+// will not be linked with libcwd_r.
+#if !defined(_REENTRANT) || !defined(__linux__)
+#undef CWDEBUG
+#endif
+
+#include "sys.h"
+#include "debug.h"
diff --git a/indra/cwdebug/debug.cc b/indra/cwdebug/debug.cc
new file mode 100644
index 000000000..48392beae
--- /dev/null
+++ b/indra/cwdebug/debug.cc
@@ -0,0 +1,413 @@
+// slviewer -- Second Life Viewer Source Code
+//
+//! @file debug.cc
+//! @brief This file contains the definitions of debug related objects and functions.
+//
+// Copyright (C) 2008, by
+//
+// Carlo Wood, Run on IRC
+// RSA-1024 0x624ACAD5 1997-01-26 Sign & Encrypt
+// Fingerprint16 = 32 EC A7 B6 AC DB 65 A6 F6 F6 55 DD 1C DC FF 61
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+#ifndef USE_PCH
+#include "sys.h" // Needed for platform-specific code
+#endif
+
+#ifdef CWDEBUG
+
+#ifndef USE_PCH
+#include // Needed for std::isprint
+#include // Needed for setfill and setw
+#include