From c2bfa25299c798b811c50b2f6f793d3a9bb914dd Mon Sep 17 00:00:00 2001
From: Alain Linden <alain@lindenlab.com>
Date: Mon, 7 Feb 2011 16:46:18 -0800
Subject: [PATCH] update pacageing of msvc?100.dll's; use latest qt package
 with all needed libs.

---
 autobuild.xml                      |  4 +--
 indra/cmake/Copy3rdPartyLibs.cmake | 56 ++++++++++++++++++++++++++++++
 indra/newview/viewer_manifest.py   | 28 ++++++++-------
 3 files changed, 74 insertions(+), 14 deletions(-)

diff --git a/autobuild.xml b/autobuild.xml
index 72bdefa61b7..237ea4ad8d4 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -1404,9 +1404,9 @@
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>d2c2377438d96a2635ea08fda243f8ab</string>
+              <string>ad536aebb28e578164f58e3f7b53bbb1</string>
               <key>url</key>
-              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-qt/rev/220364/arch/CYGWIN/installer/qt-4.7.1-windows-20110204.tar.bz2</string>
+              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-qt/rev/220494/arch/CYGWIN/installer/qt-4.7.1-windows-20110207.tar.bz2</string>
             </map>
             <key>name</key>
             <string>windows</string>
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 1f6fe6fedff..938cec38000 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -119,6 +119,62 @@ if (MSVC80)
         set(third_party_targets ${third_party_targets} ${out_targets})
           
     endif (EXISTS ${release_msvc8_redist_path})
+elseif (MSVC_VERSION EQUAL 1600) # VisualStudio 2010
+    FIND_PATH(debug_msvc10_redist_path msvcr100d.dll
+        PATHS
+        ${MSVC_DEBUG_REDIST_PATH}
+         [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/redist/Debug_NonRedist/x86/Microsoft.VC100.DebugCRT
+        NO_DEFAULT_PATH
+        NO_DEFAULT_PATH
+        )
+
+    if(EXISTS ${debug_msvc10_redist_path})
+        set(debug_msvc10_files
+            msvcr100d.dll
+            msvcp100d.dll
+            )
+
+        copy_if_different(
+            ${debug_msvc10_redist_path}
+            "${SHARED_LIB_STAGING_DIR_DEBUG}"
+            out_targets
+            ${debug_msvc10_files}
+            )
+        set(third_party_targets ${third_party_targets} ${out_targets})
+
+    endif ()
+
+    FIND_PATH(release_msvc10_redist_path msvcr100.dll
+        PATHS
+        ${MSVC_REDIST_PATH}
+         [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC100.CRT
+        NO_DEFAULT_PATH
+        NO_DEFAULT_PATH
+        )
+
+    if(EXISTS ${release_msvc10_redist_path})
+        set(release_msvc10_files
+            msvcr100.dll
+            msvcp100.dll
+            )
+
+        copy_if_different(
+            ${release_msvc10_redist_path}
+            "${SHARED_LIB_STAGING_DIR_RELEASE}"
+            out_targets
+            ${release_msvc10_files}
+            )
+        set(third_party_targets ${third_party_targets} ${out_targets})
+
+        copy_if_different(
+            ${release_msvc10_redist_path}
+            "${SHARED_LIB_STAGING_DIR_RELWITHDEBINFO}"
+            out_targets
+            ${release_msvc10_files}
+            )
+        set(third_party_targets ${third_party_targets} ${out_targets})
+          
+    endif ()
 endif (MSVC80)
 
 elseif(DARWIN)
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index b803a551104..2c8d4bc6d5f 100644
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -174,6 +174,9 @@ def final_exe(self):
             return ''.join(self.channel().split()) + '.exe'
 
     def test_msvcrt_and_copy_action(self, src, dst):
+        # Skip this test as of VS2010
+        return
+    
         # This is used to test a dll manifest.
         # It is used as a temporary override during the construct method
         from test_win32_manifest import test_assembly_binding
@@ -193,6 +196,9 @@ def test_msvcrt_and_copy_action(self, src, dst):
             print "Doesn't exist:", src
 
     def test_for_no_msvcrt_manifest_and_copy_action(self, src, dst):
+        # Skip this test as of VS2010
+        return
+
         # This is used to test that no manifest for the msvcrt exists.
         # It is used as a temporary override during the construct method
         from test_win32_manifest import test_assembly_binding
@@ -282,13 +288,11 @@ def construct(self):
             # These need to be installed as a SxS assembly, currently a 'private' assembly.
             # See http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx
             if self.args['configuration'].lower() == 'debug':
-                self.path("msvcr80d.dll")
-                self.path("msvcp80d.dll")
-                self.path("Microsoft.VC80.DebugCRT.manifest")
+                 self.path("msvcr100d.dll")
+                 self.path("msvcp80d.dll")
             else:
-                self.path("msvcr80.dll")
-                self.path("msvcp80.dll")
-                self.path("Microsoft.VC80.CRT.manifest")
+                 self.path("msvcr100.dll")
+                 self.path("msvcp100.dll")
 
             # Vivox runtimes
             self.path("SLVoice.exe")
@@ -390,12 +394,12 @@ def construct(self):
                     self.end_prefix()
 
                 # For WebKit/Qt plugin runtimes (codec/character encoding plugins)
-                if self.prefix(src="codecs", dst="codecs"):
-                    self.path("qcncodecs4.dll")
-                    self.path("qjpcodecs4.dll")
-                    self.path("qkrcodecs4.dll")
-                    self.path("qtwcodecs4.dll")
-                    self.end_prefix()
+#                if self.prefix(src="codecs", dst="codecs"):
+#                    self.path("qcncodecs4.dll")
+#                    self.path("qjpcodecs4.dll")
+#                    self.path("qkrcodecs4.dll")
+#                    self.path("qtwcodecs4.dll")
+#                    self.end_prefix()
 
                 self.end_prefix()
 
-- 
GitLab