diff options
| author | Christian Goetze (CG) <cg@lindenlab.com> | 2010-08-18 19:30:59 -0700 | 
|---|---|---|
| committer | Christian Goetze (CG) <cg@lindenlab.com> | 2010-08-18 19:30:59 -0700 | 
| commit | 7545d6209afd8efbf9609beaefbf15719802e9d6 (patch) | |
| tree | c0d357ab860edf229e830bb6ad5abe75b18d8af9 | |
| parent | 03813fe2192e1df7b8fb67d3a2fa97e92f69464b (diff) | |
| parent | 2977cbb741e2d3ae78034e73a5257cf6cf1792c6 (diff) | |
Merged: Enable Coverity, Separate out debug and release builds for faster turnaround.
| -rw-r--r-- | BuildParams | 4 | ||||
| -rw-r--r-- | doc/contributions.txt | 9 | ||||
| -rwxr-xr-x[-rw-r--r--] | indra/develop.py | 51 | ||||
| -rw-r--r-- | indra/lib/python/indra/ipc/llmessage.py | 6 | ||||
| -rw-r--r-- | indra/llcharacter/CMakeLists.txt | 17 | ||||
| -rw-r--r-- | indra/llcommon/lleventtimer.h | 2 | ||||
| -rw-r--r-- | indra/llinventory/CMakeLists.txt | 24 | ||||
| -rw-r--r-- | indra/llplugin/CMakeLists.txt | 29 | ||||
| -rw-r--r-- | indra/llprimitive/CMakeLists.txt | 14 | ||||
| -rw-r--r-- | indra/llui/CMakeLists.txt | 16 | ||||
| -rw-r--r-- | indra/llvfs/CMakeLists.txt | 26 | ||||
| -rw-r--r-- | indra/llxml/CMakeLists.txt | 33 | ||||
| -rw-r--r-- | indra/newview/llcommandlineparser.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llnamelistctrl.h | 2 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/viewer_manifest.py | 16 | 
16 files changed, 167 insertions, 93 deletions
| diff --git a/BuildParams b/BuildParams index 6bf5597f24..f019438ebc 100644 --- a/BuildParams +++ b/BuildParams @@ -175,8 +175,8 @@ viewer-development.login_channel = "Second Life Beta Development"  viewer-development.viewer_grid = agni  viewer-development.build_viewer_update_version_manager = false -# Notifications -viewer-development.email = "oz@lindenlab.com cg@lindenlab.com" +# Notifications - to configure email notices, add a setting like this: +# <username>_<reponame>.email = <email-address>  # =======================================  # brad diff --git a/doc/contributions.txt b/doc/contributions.txt index c8125c675f..e124a68df4 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -150,6 +150,8 @@ blino Nakamura  	VWR-17  Boroondas Gupte  	SNOW-278 +	SNOW-527 +	SNOW-624  	VWR-233  	WEB-262  Bulli Schumann @@ -518,6 +520,11 @@ Robin Cornelius  	SNOW-108  	SNOW-204  	SNOW-484 +	SNOW-506 +	SNOW-514 +	SNOW-520 +	SNOW-507 +	SNOW-585  	VWR-2488  	VWR-9557  	VWR-11128 @@ -609,6 +616,7 @@ Teardrops Fall  	VWR-5366  Techwolf Lupindo  	SNOW-92 +	SNOW-649  	VWR-12385  tenebrous pau  	VWR-247 @@ -616,6 +624,7 @@ Tharax Ferraris  	VWR-605  Thickbrick Sleaford  	SNOW-207 +	SNOW-743  	VWR-7109  	VWR-9287  	VWR-13483 diff --git a/indra/develop.py b/indra/develop.py index 63df0e983a..3c88bb8a01 100644..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/lleventtimer.h b/indra/llcommon/lleventtimer.h index 62586dd92f..7f42623d01 100644 --- a/indra/llcommon/lleventtimer.h +++ b/indra/llcommon/lleventtimer.h @@ -33,7 +33,7 @@  #include "lltimer.h"  // class for scheduling a function to be called at a given frequency (approximate, inprecise) -class LL_COMMON_API LLEventTimer : protected LLInstanceTracker<LLEventTimer> +class LL_COMMON_API LLEventTimer : public LLInstanceTracker<LLEventTimer>  {  public:  	LLEventTimer(F32 period);	// period is the amount of time between each call to tick() in seconds 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/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/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/llnamelistctrl.h b/indra/newview/llnamelistctrl.h index 268d16976f..981e3df16b 100644 --- a/indra/newview/llnamelistctrl.h +++ b/indra/newview/llnamelistctrl.h @@ -33,7 +33,7 @@  class LLNameListCtrl -:	public LLScrollListCtrl, protected LLInstanceTracker<LLNameListCtrl> +:	public LLScrollListCtrl, public LLInstanceTracker<LLNameListCtrl>  {  public:  	typedef enum e_name_type diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index e1855a554b..2a6b272741 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2651,7 +2651,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)  			{  				LLVector3 pos, look_at;  				U64 region_handle; -				U8 region_access; +				U8 region_access = SIM_ACCESS_MIN;  				std::string region_info = ll_safe_string((char*)binary_bucket, binary_bucket_size);  				std::string region_access_str = LLStringUtil::null;  				std::string region_access_icn = LLStringUtil::null; diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index ecca003996..9885d1aa0d 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -316,8 +316,11 @@ class WindowsManifest(ViewerManifest):          # For use in crash reporting (generates minidumps)          self.path("dbghelp.dll") -        # For using FMOD for sound... DJS -        self.path("fmod.dll") +        try: +            # FMOD for sound +            self.path("fmod.dll") +        except: +            print "Skipping FMOD - not found"          self.enable_no_crt_manifest_check() @@ -643,8 +646,11 @@ class DarwinManifest(ViewerManifest):                                      ):                          self.path(os.path.join(libdir, libfile), libfile) -                #libfmodwrapper.dylib -                self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib") +                try: +                    # FMOD for sound +                    self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib") +                except: +                    print "Skipping FMOD - not found"                  # our apps                  self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app") @@ -933,7 +939,7 @@ class Linux_i686Manifest(LinuxManifest):                      self.path("libfmod-3.75.so")                      pass              except: -                    print "Skipping libkdu_v42R.so - not found" +                    print "Skipping libfmod-3.75.so - not found"                      pass              self.end_prefix("lib") | 
