diff options
26 files changed, 365 insertions, 293 deletions
diff --git a/BuildParams b/BuildParams index de6d4064c6..9b5a9cfb3f 100644 --- a/BuildParams +++ b/BuildParams @@ -18,147 +18,67 @@ S3ACL = public-read # Update Public Inworld Build Status Indicators email_status_this_is_os = true -#### P r o d u c t i o n B u i l d s #### - # ======================================== -# Viewer Hotfix Old +# Viewer Development # ======================================== # Report changes since... -viewer-hotfix-old.show_changes_since = 2-1-release +viewer-development.show_changes_since = 2-1-release # Build Settings -viewer-hotfix-old.build_viewer = true -viewer-hotfix-old.build_server = false -viewer-hotfix-old.build_server_tests = false -viewer-hotfix-old.build_Linux = true -viewer-hotfix-old.build_hg_bundle = true -viewer-hotfix-old.build_docs = true -#viewer-hotfix-old.build_Linux_Debug = false -#viewer-hotfix-old.build_Linux_RelWithDebInfo = false -# -# Default channels etc - set build_viewer_update_version_manager to true when needed. -viewer-hotfix-old.viewer_channel = "Second Life Release" -viewer-hotfix-old.login_channel = "Second Life Release" -viewer-hotfix-old.viewer_grid = agni -viewer-hotfix-old.build_viewer_update_version_manager = false +viewer-development_coverity.coverity_product = viewer -# ======================================== -# Viewer Hotfix Previous -# ======================================== +viewer-development.build_Linux = true +viewer-development_debug.build_Linux = false +viewer-development_coverity.build_Linux = false + +viewer-development.build_Darwin = true +viewer-development_debug.build_Darwin = false +viewer-development_coverity.build_Darwin = false + +viewer-development.build_CYGWIN = true +viewer-development.build_CYGWIN_Debug = false +viewer-development.build_CYGWIN_RelWithDebInfo = false +viewer-development.build_CYGWIN_Release = true +viewer-development_debug.build_CYGWIN_Debug = true +viewer-development_debug.build_CYGWIN_RelWithDebInfo = true +viewer-development_debug.build_CYGWIN_Release = false +viewer-development_coverity.build_coverity = true +viewer-development_coverity.build_CYGWIN_Debug = false +viewer-development_coverity.build_CYGWIN_RelWithDebInfo = false +viewer-development_coverity.build_CYGWIN_Release = true -# Report changes since... -viewer-hotfix-previous.show_changes_since = 2-1-release +# Notifications - to configure email notices, add a setting like this: +# <username>_<reponame>.email = <email-address> -# Build Settings -viewer-hotfix-previous.build_viewer = true -viewer-hotfix-previous.build_server = false -viewer-hotfix-previous.build_server_tests = false -viewer-hotfix-previous.build_Linux = true -viewer-hotfix-previous.build_hg_bundle = true -viewer-hotfix-previous.build_docs = true -#viewer-hotfix-previous.build_Linux_Debug = false -#viewer-hotfix-previous.build_Linux_RelWithDebInfo = false -# -# Default channels etc - set build_viewer_update_version_manager to true when needed. -viewer-hotfix-previous.viewer_channel = "Second Life Release" -viewer-hotfix-previous.login_channel = "Second Life Release" -viewer-hotfix-previous.viewer_grid = agni -viewer-hotfix-previous.build_viewer_update_version_manager = false +# ================================================================= +# Viewer Development (snowstorm canonical build owned by Oz Linden) +# ================================================================= +snowstorm_viewer-development.viewer_channel = "Second Life Development" +snowstorm_viewer-development.login_channel = "Second Life Development" +snowstorm_viewer-development.build_viewer_update_version_manager = false +snowstorm_viewer-development.email = viewer-development-builds@lists.secondlife.com # ======================================== -# Viewer Hotfix +# Viewer Beta # ======================================== - -# Report changes since... -viewer-hotfix.show_changes_since = 2-1-release - -# Build Settings -viewer-hotfix.build_viewer = true -viewer-hotfix.build_server = false -viewer-hotfix.build_server_tests = false -viewer-hotfix.build_Linux = true -viewer-hotfix.build_hg_bundle = true -viewer-hotfix.build_docs = true -#viewer-hotfix.build_Linux_Debug = false -#viewer-hotfix.build_Linux_RelWithDebInfo = false -# -# Default channels etc - set build_viewer_update_version_manager to true when needed. -viewer-hotfix.viewer_channel = "Second Life Release" -viewer-hotfix.login_channel = "Second Life Release" -viewer-hotfix.viewer_grid = agni -viewer-hotfix.build_viewer_update_version_manager = false +viewer-beta.viewer_channel = "Second Life Beta" +viewer-beta.login_channel = "Second Life Beta" +viewer-beta.build_viewer_update_version_manager = true # ======================================== # Viewer Release # ======================================== - -# Report changes since... -viewer-release.show_changes_since = 2-1-release - -# Build Settings -viewer-release.build_viewer = true -viewer-release.build_server = false -viewer-release.build_server_tests = false -viewer-release.build_Linux = true -viewer-release.build_hg_bundle = true -viewer-release.build_docs = true -#viewer-release.build_Linux_Debug = false -#viewer-release.build_Linux_RelWithDebInfo = false -# -# Default channels etc - set build_viewer_update_version_manager to true when needed. -viewer-release.viewer_channel = "Second Life Beta Viewer" -viewer-release.login_channel = "Second Life Beta Viewer" -viewer-release.viewer_grid = agni -viewer-release.build_viewer_update_version_manager = false - -# ======================================== -# Viewer Public -# ======================================== - -# Report changes since... -viewer-public.show_changes_since = 2-1-release - -# Build Settings -viewer-public.build_viewer = true -viewer-public.build_server = false -viewer-public.build_server_tests = false -viewer-public.build_Linux = true -viewer-public.build_hg_bundle = true -viewer-public.build_docs = true -#viewer-public.build_Linux_Debug = false -#viewer-public.build_Linux_RelWithDebInfo = false -# -# Default channels etc - set build_viewer_update_version_manager to true when needed. -viewer-public.viewer_channel = "Second Life Public Alpha" -viewer-public.login_channel = "Second Life Public Alpha" -viewer-public.viewer_grid = agni -viewer-public.build_viewer_update_version_manager = false -viewer-public_coverity.build_coverity = true -viewer-public_coverity.coverity_product = viewer - - - -#### D e v e l o p m e n t B u i l d s #### - +viewer-release.viewer_channel = "Second Life Release" +viewer-release.login_channel = "Second Life Release" +viewer-release.build_viewer_update_version_manager = true # ======================================== -# Viewer Development +# aimee # ======================================== -# Report changes since... -viewer-development.show_changes_since = 2-1-release - -# Build Settings -viewer-development.build_viewer = true -viewer-development.build_Linux = true -viewer-development.viewer_channel = "Second Life Development" -viewer-development.login_channel = "Second Life Beta Development" -viewer-development.viewer_grid = agni -viewer-development.build_viewer_update_version_manager = false - -# Notifications - to configure email notices, add a setting like this: -# <username>_<reponame>.email = <email-address> +viewer-development-import.build_debug_release_separately = true +viewer-development-fixes.build_debug_release_separately = true # ======================================= # brad @@ -227,4 +147,30 @@ media.login_channel = "Second Life Alpha" media.viewer_grid = agni media.build_viewer_update_version_manager = false +# ================ +# oz +# ================ + +oz_viewer-review1_coverity.coverity_product = viewer + +oz_viewer-review1.build_Linux = true +oz_viewer-review1_debug.build_Linux = false +oz_viewer-review1_coverity.build_Linux = false + +oz_viewer-review1.build_Darwin = true +oz_viewer-review1_debug.build_Darwin = false +oz_viewer-review1_coverity.build_Darwin = false + +oz_viewer-review1.build_CYGWIN = true +oz_viewer-review1.build_CYGWIN_Debug = false +oz_viewer-review1.build_CYGWIN_RelWithDebInfo = false +oz_viewer-review1.build_CYGWIN_Release = true +oz_viewer-review1_debug.build_CYGWIN_Debug = true +oz_viewer-review1_debug.build_CYGWIN_RelWithDebInfo = true +oz_viewer-review1_debug.build_CYGWIN_Release = false +oz_viewer-review1_coverity.build_coverity = true +oz_viewer-review1_coverity.build_CYGWIN_Debug = false +oz_viewer-review1_coverity.build_CYGWIN_RelWithDebInfo = false +oz_viewer-review1_coverity.build_CYGWIN_Release = false + # eof @@ -32,19 +32,19 @@ build_dir_CYGWIN() installer_Darwin() { - ls -1td "$(build_dir_Darwin Release)/newview/"*.dmg 2>/dev/null | sed 1q + ls -1td "$(build_dir_Darwin ${last_built_variant:-Release})/newview/"*.dmg 2>/dev/null | sed 1q } installer_Linux() { - ls -1td "$(build_dir_Linux Release)/newview/"*.tar.bz2 2>/dev/null | sed 1q + ls -1td "$(build_dir_Linux ${last_built_variant:-Release})/newview/"*.tar.bz2 2>/dev/null | sed 1q } installer_CYGWIN() { - d=$(build_dir_CYGWIN Release) - p=$(sed 's:.*=::' "$d/newview/Release/touched.bat") - echo "$d/newview/Release/$p" + d=$(build_dir_CYGWIN ${last_built_variant:-Release}) + p=$(sed 's:.*=::' "$d/newview/${last_built_variant:-Release}/touched.bat") + echo "$d/newview/${last_built_variant:-Release}/$p" } pre_build() @@ -147,11 +147,15 @@ build_viewer_update_version_manager_version=`scripts/get_version.py --viewer-ver cd indra succeeded=true build_processes= +last_built_variant= for variant in $variants do eval '$build_'"$variant" || continue eval '$build_'"$arch"_"$variant" || continue + # Only the last built arch is available for upload + last_built_variant="$variant" + begin_section "Do$variant" build_dir=`build_dir_$arch $variant` build_dir_stubs="$build_dir/win_setup/$variant" @@ -276,10 +280,14 @@ then upload_item installer "$package" binary/octet-stream # Upload crash reporter files. - for symbolfile in $symbolfiles - do - upload_item symbolfile "$build_dir/$symbolfile" binary/octet-stream - done + case "$last_built_variant" in + Release) + for symbolfile in $symbolfiles + do + upload_item symbolfile "$build_dir/$symbolfile" binary/octet-stream + done + ;; + esac # Upload stub installers upload_stub_installers "$build_dir_stubs" diff --git a/doc/contributions.txt b/doc/contributions.txt index f7dada053b..9df072e937 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -150,6 +150,10 @@ blino Nakamura VWR-17 Boroondas Gupte SNOW-278 + SNOW-503 + SNOW-510 + SNOW-527 + SNOW-624 VWR-233 WEB-262 Bulli Schumann @@ -518,14 +522,19 @@ Robin Cornelius SNOW-108 SNOW-204 SNOW-484 + SNOW-504 SNOW-506 + SNOW-507 + SNOW-511 SNOW-514 + SNOW-520 SNOW-585 VWR-2488 VWR-9557 VWR-11128 VWR-12533 VWR-12587 + VWR-12758 VWR-12763 VWR-12995 Ryozu Kojima @@ -599,6 +608,8 @@ Strife Onizuka VWR-2265 VWR-4111 Tayra Dagostino + SNOW-517 + SNOW-543 VWR-13947 TBBle Kurosawa VWR-938 @@ -606,12 +617,14 @@ TBBle Kurosawa VWR-942 VWR-944 VWR-945 + SNOW-543 VWR-1891 VWR-1892 Teardrops Fall VWR-5366 Techwolf Lupindo SNOW-92 + SNOW-649 VWR-12385 tenebrous pau VWR-247 diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 89422fbdb2..2dd296bf12 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -286,7 +286,7 @@ copy_if_different( ${vivox_src_dir} "${SHARED_LIB_STAGING_DIR_DEBUG}" out_targets - ${vivox_files} + ${vivox_files} ) set(third_party_targets ${third_party_targets} ${out_targets}) @@ -391,7 +391,9 @@ if(NOT EXISTS ${internal_llkdu_path}) endif (NOT EXISTS ${internal_llkdu_path}) -add_custom_target(stage_third_party_libs ALL - DEPENDS - ${third_party_targets} - ) +if(NOT STANDALONE) + add_custom_target( + stage_third_party_libs ALL + DEPENDS ${third_party_targets} + ) +endif(NOT STANDALONE) diff --git a/indra/cmake/FindTut.cmake b/indra/cmake/FindTut.cmake new file mode 100644 index 0000000000..b5d58f6396 --- /dev/null +++ b/indra/cmake/FindTut.cmake @@ -0,0 +1,31 @@ +# -*- cmake -*- + +# - Find Tut +# Find the Tut unit test framework includes and library +# This module defines +# TUT_INCLUDE_DIR, where to find tut.h, etc. +# TUT_FOUND, If false, do not try to use Tut. + +find_path(TUT_INCLUDE_DIR tut.h + /usr/local/include/ + /usr/include + ) + +if (TUT_INCLUDE_DIR) + set(TUT_FOUND "YES") +else (TUT_INCLUDE_DIR) + set(TUT_FOUND "NO") +endif (TUT_INCLUDE_DIR) + +if (TUT_FOUND) + if (NOT TUT_FIND_QUIETLY) + message(STATUS "Found Tut: ${TUT_INCLUDE_DIR}") + set(TUT_FIND_QUIETLY TRUE) # Only alert us the first time + endif (NOT TUT_FIND_QUIETLY) +else (TUT_FOUND) + if (TUT_FIND_REQUIRED) + message(FATAL_ERROR "Could not find Tut") + endif (TUT_FIND_REQUIRED) +endif (TUT_FOUND) + +mark_as_advanced(TUT_INCLUDE_DIR) diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake index e8a0a949b6..a6a7989955 100644 --- a/indra/cmake/LLAddBuildTest.cmake +++ b/indra/cmake/LLAddBuildTest.cmake @@ -107,7 +107,7 @@ INCLUDE(GoogleMock) # Setup target ADD_EXECUTABLE(PROJECT_${project}_TEST_${name} ${${name}_test_SOURCE_FILES}) - SET_TARGET_PROPERTIES(PROJECT_${project}_TEST_${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXE_STAGING_DIR}) + SET_TARGET_PROPERTIES(PROJECT_${project}_TEST_${name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}") # # Per-codefile additional / external project dep and lib dep property extraction @@ -196,7 +196,7 @@ FUNCTION(LL_ADD_INTEGRATION_TEST message(STATUS "ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files})") endif(TEST_DEBUG) ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files}) - SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${EXE_STAGING_DIR}) + SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}") # Add link deps to the executable if(TEST_DEBUG) diff --git a/indra/cmake/Tut.cmake b/indra/cmake/Tut.cmake index 7488e9dcb0..784560471d 100644 --- a/indra/cmake/Tut.cmake +++ b/indra/cmake/Tut.cmake @@ -1,6 +1,12 @@ # -*- cmake -*- include(Prebuilt) -if (NOT STANDALONE) +set(TUT_FIND_REQUIRED TRUE) +set(TUT_FIND_QUIETLY TRUE) + +if (STANDALONE) + include(FindTut) + include_directories(${TUT_INCLUDE_DIR}) +else (STANDALONE) use_prebuilt_binary(tut) -endif(NOT STANDALONE) +endif (STANDALONE) diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake index 1c572ab27f..12ba1b1b35 100644 --- a/indra/cmake/WebKitLibPlugin.cmake +++ b/indra/cmake/WebKitLibPlugin.cmake @@ -3,48 +3,46 @@ include(Linking) include(Prebuilt) if (STANDALONE) - set(WEBKITLIBPLUGIN OFF CACHE BOOL - "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.") + set(WEBKITLIBPLUGIN OFF CACHE BOOL + "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.") else (STANDALONE) - use_prebuilt_binary(llqtwebkit) - set(WEBKITLIBPLUGIN ON CACHE BOOL - "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.") + use_prebuilt_binary(llqtwebkit) + set(WEBKITLIBPLUGIN ON CACHE BOOL + "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.") endif (STANDALONE) if (WINDOWS) - set(WEBKIT_PLUGIN_LIBRARIES - debug llqtwebkitd - debug QtWebKitd4 - debug QtOpenGLd4 - debug QtNetworkd4 - debug QtGuid4 - debug QtCored4 - debug qtmaind - optimized llqtwebkit - optimized QtWebKit4 - optimized QtOpenGL4 - optimized QtNetwork4 - optimized QtGui4 - optimized QtCore4 - optimized qtmain - ) + set(WEBKIT_PLUGIN_LIBRARIES + debug llqtwebkitd + debug QtWebKitd4 + debug QtOpenGLd4 + debug QtNetworkd4 + debug QtGuid4 + debug QtCored4 + debug qtmaind + optimized llqtwebkit + optimized QtWebKit4 + optimized QtOpenGL4 + optimized QtNetwork4 + optimized QtGui4 + optimized QtCore4 + optimized qtmain + ) elseif (DARWIN) - set(WEBKIT_PLUGIN_LIBRARIES - optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib - debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib - ) + set(WEBKIT_PLUGIN_LIBRARIES + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib + debug ${ARCH_PREBUILT_DIRS_RELEASE}/libllqtwebkit.dylib + ) elseif (LINUX) + if (STANDALONE) + set(WEBKIT_PLUGIN_LIBRARIES llqtwebkit) + else (STANDALONE) set(WEBKIT_PLUGIN_LIBRARIES llqtwebkit qgif -# qico qjpeg -# qpng -# qtiff -# qsvg -# QtSvg QtWebKit QtOpenGL QtNetwork @@ -56,9 +54,6 @@ elseif (LINUX) X11 Xrender GL - -# sqlite3 -# Xi -# SM ) + endif (STANDALONE) endif (WINDOWS) diff --git a/indra/develop.py b/indra/develop.py index 63df0e983a..3c88bb8a01 100755 --- a/indra/develop.py +++ b/indra/develop.py @@ -76,6 +76,7 @@ class PlatformSetup(object): distcc = True cmake_opts = [] word_size = 32 + using_express = False def __init__(self): self.script_dir = os.path.realpath( @@ -497,9 +498,17 @@ class WindowsSetup(PlatformSetup): self._generator = version print 'Building with ', self.gens[version]['gen'] break - else: - print >> sys.stderr, 'Cannot find a Visual Studio installation!' - sys.exit(1) + else: + print >> sys.stderr, 'Cannot find a Visual Studio installation, testing for express editions' + for version in 'vc80 vc90 vc71'.split(): + if self.find_visual_studio_express(version): + self._generator = version + self.using_express = True + print 'Building with ', self.gens[version]['gen'] , "Express edition" + break + else: + print >> sys.stderr, 'Cannot find any Visual Studio installation' + sys.exit(1) return self._generator def _set_generator(self, gen): @@ -562,6 +571,28 @@ class WindowsSetup(PlatformSetup): return '' + def find_visual_studio_express(self, gen=None): + if gen is None: + gen = self._generator + gen = gen.lower() + try: + import _winreg + key_str = (r'SOFTWARE\Microsoft\VCEXpress\%s\Setup\VC' % + self.gens[gen]['ver']) + value_str = (r'ProductDir') + print ('Reading VS environment from HKEY_LOCAL_MACHINE\%s\%s' % + (key_str, value_str)) + print key_str + + reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE) + key = _winreg.OpenKey(reg, key_str) + value = _winreg.QueryValueEx(key, value_str)[0]+"IDE" + print 'Found: %s' % value + return value + except WindowsError, err: + print >> sys.stderr, "Didn't find ", self.gens[gen]['gen'] + return '' + def get_build_cmd(self): if self.incredibuild: config = self.build_type @@ -572,6 +603,17 @@ class WindowsSetup(PlatformSetup): cmd = "%(bin)s %(prj)s.sln /build /cfg=%(cfg)s" % {'prj': self.project_name, 'cfg': config, 'bin': executable} return (executable, cmd) + environment = self.find_visual_studio() + if environment == '': + environment = self.find_visual_studio_express() + if environment == '': + print >> sys.stderr, "Something went very wrong during build stage, could not find a Visual Studio installation." + else: + build_dirs=self.build_dirs(); + print >> sys.stderr, "\nSolution generation complete, it can can now be found in:", build_dirs[0] + print >> sys.stderr, "\nPlease see https://wiki.secondlife.com/wiki/Microsoft_Visual_Studio#Extra_steps_for_Visual_Studio_Express_editions for express specific information" + exit(0) + # devenv.com is CLI friendly, devenv.exe... not so much. executable = '%sdevenv.com' % (self.find_visual_studio(),) cmd = ('"%s" %s.sln /build %s' % @@ -603,7 +645,8 @@ class WindowsSetup(PlatformSetup): '''Override to add the vstool.exe call after running cmake.''' PlatformSetup.run_cmake(self, args) if self.unattended == 'OFF': - self.run_vstool() + if self.using_express == False: + self.run_vstool() def run_vstool(self): for build_dir in self.build_dirs(): diff --git a/indra/lib/python/indra/ipc/llmessage.py b/indra/lib/python/indra/ipc/llmessage.py index 6161badc70..91fb36b72c 100644 --- a/indra/lib/python/indra/ipc/llmessage.py +++ b/indra/lib/python/indra/ipc/llmessage.py @@ -26,8 +26,6 @@ THE SOFTWARE. $/LicenseInfo$ """ -from sets import Set, ImmutableSet - from compatibility import Incompatible, Older, Newer, Same from tokenstream import TokenStream @@ -44,8 +42,8 @@ class Template: def compatibleWithBase(self, base): messagenames = ( - ImmutableSet(self.messages.keys()) - | ImmutableSet(base.messages.keys()) + frozenset(self.messages.keys()) + | frozenset(base.messages.keys()) ) compatibility = Same() diff --git a/indra/llcharacter/CMakeLists.txt b/indra/llcharacter/CMakeLists.txt index 85e3f97092..14841b5d3d 100644 --- a/indra/llcharacter/CMakeLists.txt +++ b/indra/llcharacter/CMakeLists.txt @@ -77,11 +77,12 @@ list(APPEND llcharacter_SOURCE_FILES ${llcharacter_HEADER_FILES}) add_library (llcharacter ${llcharacter_SOURCE_FILES}) -# Add tests -include(LLAddBuildTest) -# UNIT TESTS -SET(llcharacter_TEST_SOURCE_FILES - lljoint.cpp - ) -LL_ADD_PROJECT_UNIT_TESTS(llcharacter "${llcharacter_TEST_SOURCE_FILES}") - +if(LL_TESTS) + # Add tests + include(LLAddBuildTest) + # UNIT TESTS + SET(llcharacter_TEST_SOURCE_FILES + lljoint.cpp + ) + LL_ADD_PROJECT_UNIT_TESTS(llcharacter "${llcharacter_TEST_SOURCE_FILES}") +endif(LL_TESTS) diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index d1f8e19c26..92d9e1204a 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 2; const S32 LL_VERSION_MINOR = 1; -const S32 LL_VERSION_PATCH = 1; +const S32 LL_VERSION_PATCH = 2; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; diff --git a/indra/llinventory/CMakeLists.txt b/indra/llinventory/CMakeLists.txt index a563db901a..6b2b61f883 100644 --- a/indra/llinventory/CMakeLists.txt +++ b/indra/llinventory/CMakeLists.txt @@ -59,16 +59,16 @@ list(APPEND llinventory_SOURCE_FILES ${llinventory_HEADER_FILES}) add_library (llinventory ${llinventory_SOURCE_FILES}) +if(LL_TESTS) + #add unit tests + INCLUDE(LLAddBuildTest) + SET(llinventory_TEST_SOURCE_FILES + # no real unit tests yet! + ) + LL_ADD_PROJECT_UNIT_TESTS(llinventory "${llinventory_TEST_SOURCE_FILES}") -#add unit tests -INCLUDE(LLAddBuildTest) -SET(llinventory_TEST_SOURCE_FILES - # no real unit tests yet! - ) -LL_ADD_PROJECT_UNIT_TESTS(llinventory "${llinventory_TEST_SOURCE_FILES}") - -#set(TEST_DEBUG on) -set(test_libs llinventory ${LLMESSAGE_LIBRARIES} ${LLVFS_LIBRARIES} ${LLMATH_LIBRARIES} ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) -LL_ADD_INTEGRATION_TEST(inventorymisc "" "${test_libs}") -LL_ADD_INTEGRATION_TEST(llparcel "" "${test_libs}") - + #set(TEST_DEBUG on) + set(test_libs llinventory ${LLMESSAGE_LIBRARIES} ${LLVFS_LIBRARIES} ${LLMATH_LIBRARIES} ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) + LL_ADD_INTEGRATION_TEST(inventorymisc "" "${test_libs}") + LL_ADD_INTEGRATION_TEST(llparcel "" "${test_libs}") +endif(LL_TESTS) diff --git a/indra/llplugin/CMakeLists.txt b/indra/llplugin/CMakeLists.txt index 441becbae0..fdd510b389 100644 --- a/indra/llplugin/CMakeLists.txt +++ b/indra/llplugin/CMakeLists.txt @@ -57,18 +57,21 @@ add_library (llplugin ${llplugin_SOURCE_FILES}) add_subdirectory(slplugin) -# Add tests -include(LLAddBuildTest) -# UNIT TESTS -SET(llplugin_TEST_SOURCE_FILES - llplugincookiestore.cpp - ) +if (LL_TESTS) + # Add tests + include(LLAddBuildTest) -# llplugincookiestore has a dependency on curl, so we need to link the curl library into the test. -set_source_files_properties( - llplugincookiestore.cpp - PROPERTIES - LL_TEST_ADDITIONAL_LIBRARIES "${CURL_LIBRARIES}" - ) + # UNIT TESTS + SET(llplugin_TEST_SOURCE_FILES + llplugincookiestore.cpp + ) -LL_ADD_PROJECT_UNIT_TESTS(llplugin "${llplugin_TEST_SOURCE_FILES}") + # llplugincookiestore has a dependency on curl, so we need to link the curl library into the test. + set_source_files_properties( + llplugincookiestore.cpp + PROPERTIES + LL_TEST_ADDITIONAL_LIBRARIES "${CURL_LIBRARIES}" + ) + + LL_ADD_PROJECT_UNIT_TESTS(llplugin "${llplugin_TEST_SOURCE_FILES}") +endif (LL_TESTS) diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt index 68a3d54597..f4d21308b3 100644 --- a/indra/llprimitive/CMakeLists.txt +++ b/indra/llprimitive/CMakeLists.txt @@ -53,9 +53,11 @@ list(APPEND llprimitive_SOURCE_FILES ${llprimitive_HEADER_FILES}) add_library (llprimitive ${llprimitive_SOURCE_FILES}) -#add unit tests -INCLUDE(LLAddBuildTest) -SET(llprimitive_TEST_SOURCE_FILES - llmediaentry.cpp - ) -LL_ADD_PROJECT_UNIT_TESTS(llprimitive "${llprimitive_TEST_SOURCE_FILES}") +if(LL_TESTS) + #add unit tests + INCLUDE(LLAddBuildTest) + SET(llprimitive_TEST_SOURCE_FILES + llmediaentry.cpp + ) + LL_ADD_PROJECT_UNIT_TESTS(llprimitive "${llprimitive_TEST_SOURCE_FILES}") +endif(LL_TESTS) diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index 12df9ccae4..8e78a5fefd 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -240,10 +240,12 @@ target_link_libraries(llui ${LLCOMMON_LIBRARIES} # must be after llimage, llwindow, llrender ) -# Add tests -include(LLAddBuildTest) -SET(llui_TEST_SOURCE_FILES - llurlmatch.cpp - llurlentry.cpp - ) -LL_ADD_PROJECT_UNIT_TESTS(llui "${llui_TEST_SOURCE_FILES}") +if(LL_TESTS) + # Add tests + include(LLAddBuildTest) + SET(llui_TEST_SOURCE_FILES + llurlmatch.cpp + llurlentry.cpp + ) + LL_ADD_PROJECT_UNIT_TESTS(llui "${llui_TEST_SOURCE_FILES}") +endif(LL_TESTS) diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index f266af03ee..b28399a36b 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -87,6 +87,9 @@ bool LLFlatListView::addItem(LLPanel * item, const LLSD& value /*= LLUUID::null* mItemsPanel->addChild(item); break; default: + LL_WARNS("") << "Unsupported position." << LL_ENDL; + delete new_pair; + return false; break; } diff --git a/indra/llui/llflatlistview.h b/indra/llui/llflatlistview.h index 8667af048b..afd0176d98 100644 --- a/indra/llui/llflatlistview.h +++ b/indra/llui/llflatlistview.h @@ -54,6 +54,7 @@ */ class LLFlatListView : public LLScrollContainer, public LLEditMenuHandler { + LOG_CLASS(LLFlatListView); public: /** @@ -448,6 +449,7 @@ private: */ class LLFlatListViewEx : public LLFlatListView { + LOG_CLASS(LLFlatListViewEx); public: struct Params : public LLInitParam::Block<Params, LLFlatListView::Params> { diff --git a/indra/llvfs/CMakeLists.txt b/indra/llvfs/CMakeLists.txt index 05c7c7860c..722f4e2bfd 100644 --- a/indra/llvfs/CMakeLists.txt +++ b/indra/llvfs/CMakeLists.txt @@ -67,15 +67,17 @@ if (DARWIN) endif (DARWIN) -# Add tests -include(LLAddBuildTest) -# UNIT TESTS -SET(llvfs_TEST_SOURCE_FILES - # none so far - ) -LL_ADD_PROJECT_UNIT_TESTS(llvfs "${llvfs_TEST_SOURCE_FILES}") - -# INTEGRATION TESTS -set(test_libs llmath llcommon llvfs ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) -# TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests. -LL_ADD_INTEGRATION_TEST(lldir "" "${test_libs}") +if(LL_TESTS) + # Add tests + include(LLAddBuildTest) + # UNIT TESTS + SET(llvfs_TEST_SOURCE_FILES + # none so far + ) + LL_ADD_PROJECT_UNIT_TESTS(llvfs "${llvfs_TEST_SOURCE_FILES}") + + # INTEGRATION TESTS + set(test_libs llmath llcommon llvfs ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) + # TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests. + LL_ADD_INTEGRATION_TEST(lldir "" "${test_libs}") +endif(LL_TESTS) diff --git a/indra/llxml/CMakeLists.txt b/indra/llxml/CMakeLists.txt index fbcfade383..eb5166ee71 100644 --- a/indra/llxml/CMakeLists.txt +++ b/indra/llxml/CMakeLists.txt @@ -45,24 +45,27 @@ target_link_libraries( llxml ${EXPAT_LIBRARIES} ) -# tests -# unit tests +if(LL_TESTS) + # tests -SET(llxml_TEST_SOURCE_FILES - # none yet! - ) -LL_ADD_PROJECT_UNIT_TESTS(llxml "${llxml_TEST_SOURCE_FILES}") + # unit tests -# integration tests + SET(llxml_TEST_SOURCE_FILES + # none yet! + ) + LL_ADD_PROJECT_UNIT_TESTS(llxml "${llxml_TEST_SOURCE_FILES}") -# set(TEST_DEBUG on) -set(test_libs - ${LLXML_LIBRARIES} - ${WINDOWS_LIBRARIES} - ${LLMATH_LIBRARIES} - ${LLCOMMON_LIBRARIES} - ) + # integration tests -LL_ADD_INTEGRATION_TEST(llcontrol "" "${test_libs}") + # set(TEST_DEBUG on) + set(test_libs + ${LLXML_LIBRARIES} + ${WINDOWS_LIBRARIES} + ${LLMATH_LIBRARIES} + ${LLCOMMON_LIBRARIES} + ) + LL_ADD_INTEGRATION_TEST(llcontrol "" "${test_libs}") + +endif(LL_TESTS) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 65502209f7..1ee7586d5f 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1704,12 +1704,12 @@ if (LINUX) add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer010 media_plugin_webkit) - if (NOT INSTALL) + if (PACKAGE) add_custom_target(package ALL DEPENDS ${product}.tar.bz2) add_dependencies(package linux-crash-logger-target) add_dependencies(package linux-updater-target) check_message_template(package) - endif (NOT INSTALL) + endif (PACKAGE) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched diff --git a/indra/newview/llcommandlineparser.cpp b/indra/newview/llcommandlineparser.cpp index 3f9e25518a..ee8646aad0 100644 --- a/indra/newview/llcommandlineparser.cpp +++ b/indra/newview/llcommandlineparser.cpp @@ -53,7 +53,7 @@ namespace po = boost::program_options; -// *NTOE:MEP - Currently the boost object reside in file scope. +// *NOTE:MEP - Currently the boost object reside in file scope. // This has a couple of negatives, they are always around and // there can be only one instance of each. // The plus is that the boost-ly-ness of this implementation is @@ -156,6 +156,12 @@ public: return mIsComposing; } + // Needed for boost 1.42 + virtual bool is_required() const + { + return false; // All our command line options are optional. + } + virtual bool apply_default(boost::any& value_store) const { return false; // No defaults. @@ -169,7 +175,6 @@ public: { mNotifyCallback(*value); } - } protected: diff --git a/indra/newview/llinventoryitemslist.h b/indra/newview/llinventoryitemslist.h index 17131549e7..ca90427659 100644 --- a/indra/newview/llinventoryitemslist.h +++ b/indra/newview/llinventoryitemslist.h @@ -38,6 +38,7 @@ class LLViewerInventoryItem; class LLInventoryItemsList : public LLFlatListViewEx { + LOG_CLASS(LLInventoryItemsList); public: struct Params : public LLInitParam::Block<Params, LLFlatListViewEx::Params> { diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 15729b5175..2e003dd2b8 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -7111,6 +7111,13 @@ void LLVivoxProtocolParser::reset() alias.clear(); numberOfAliases = 0; applicationString.clear(); + id = 0; + nameString.clear(); + descriptionString.clear(); + expirationDate = LLDate(); + hasExpired = false; + fontType = 0; + fontStatus = 0; } //virtual diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h index 4806fb35bf..854c37c2c1 100644 --- a/indra/newview/llwearableitemslist.h +++ b/indra/newview/llwearableitemslist.h @@ -384,6 +384,7 @@ private: */ class LLWearableItemsList : public LLInventoryItemsList { + LOG_CLASS(LLWearableItemsList); public: /** * Context menu. diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 9885d1aa0d..0eda4007e3 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -833,6 +833,28 @@ class LinuxManifest(ViewerManifest): # Create an appropriate gridargs.dat for this package, denoting required grid. self.put_in_file(self.flags_list(), 'etc/gridargs.dat') + self.path("secondlife-bin","bin/do-not-directly-run-secondlife-bin") + self.path("../linux_crash_logger/linux-crash-logger","bin/linux-crash-logger.bin") + self.path("../linux_updater/linux-updater", "bin/linux-updater.bin") + self.path("../llplugin/slplugin/SLPlugin", "bin/SLPlugin") + + if self.prefix("res-sdl"): + self.path("*") + # recurse + self.end_prefix("res-sdl") + + # plugins + if self.prefix(src="", dst="bin/llplugin"): + self.path("../media_plugins/webkit/libmedia_plugin_webkit.so", "libmedia_plugin_webkit.so") + self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so") + self.end_prefix("bin/llplugin") + + try: + self.path("../llcommon/libllcommon.so", "lib/libllcommon.so") + except: + print "Skipping llcommon.so (assuming llcommon was linked statically)" + + self.path("featuretable_linux.txt") def package_finish(self): if 'installer_name' in self.args: @@ -847,6 +869,10 @@ class LinuxManifest(ViewerManifest): else: installer_name += '_' + self.channel_oneword().upper() + if self.args['buildtype'].lower() == 'release' and self.is_packaging_viewer(): + print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build" + self.run_command("find %(d)r/bin %(d)r/lib -type f | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) # makes some small assumptions about our packaged dir structure + # Fix access permissions self.run_command(""" find %(dst)s -type d | xargs --no-run-if-empty chmod 755; @@ -883,36 +909,12 @@ class Linux_i686Manifest(LinuxManifest): # install either the libllkdu we just built, or a prebuilt one, in # decreasing order of preference. for linux package, this goes to bin/ - for lib, destdir in ("llkdu", "bin"), ("llcommon", "lib"): - libfile = "lib%s.so" % lib - try: - self.path(self.find_existing_file(os.path.join(os.pardir, lib, libfile), - '../../libraries/i686-linux/lib_release_client/%s' % libfile), - dst=os.path.join(destdir, libfile)) - # keep this one to preserve syntax, open source mangling removes previous lines - pass - except RuntimeError: - print "Skipping %s - not found" % libfile - pass - - self.path("secondlife-bin","bin/do-not-directly-run-secondlife-bin") - - self.path("../linux_crash_logger/linux-crash-logger","bin/linux-crash-logger.bin") - self.path("../linux_updater/linux-updater", "bin/linux-updater.bin") - self.path("../llplugin/slplugin/SLPlugin", "bin/SLPlugin") - if self.prefix("res-sdl"): - self.path("*") - # recurse - self.end_prefix("res-sdl") - - # plugins - if self.prefix(src="", dst="bin/llplugin"): - self.path("../media_plugins/webkit/libmedia_plugin_webkit.so", "libmedia_plugin_webkit.so") - self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so") - self.end_prefix("bin/llplugin") - - self.path("featuretable_linux.txt") - #self.path("secondlife-i686.supp") + try: + self.path(self.find_existing_file('../llkdu/libllkdu.so', + '../../libraries/i686-linux/lib_release_client/libllkdu.so'), + dst='bin/libllkdu.so') + except: + print "Skipping libllkdu.so - not found" if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"): self.path("libapr-1.so.0") @@ -955,10 +957,6 @@ class Linux_i686Manifest(LinuxManifest): self.path("libvivoxplatform.so") self.end_prefix("lib") - if self.args['buildtype'].lower() == 'release' and self.is_packaging_viewer(): - print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build" - self.run_command("find %(d)r/bin %(d)r/lib -type f | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) # makes some small assumptions about our packaged dir structure - ################################################################ if __name__ == "__main__": |