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__":  | 
