[Libreoffice-commits] core.git: Branch 'libreoffice-4-0' - download external/msvcp100 external/prj oowintool scp2/source

Andras Timar atimar at suse.com
Tue May 21 05:20:17 PDT 2013


 download                                             |   14 -----
 external/msvcp100/README_msvcX100.dll                |    2 
 external/prj/d.lst                                   |    4 +
 oowintool                                            |    2 
 scp2/source/ooo/vc_redist.scp                        |   22 ---------
 scp2/source/winexplorerext/file_winexplorerext.scp   |   45 +++++++++++++++++++
 scp2/source/winexplorerext/module_winexplorerext.scp |    6 ++
 7 files changed, 58 insertions(+), 37 deletions(-)

New commits:
commit d7b428453b07f48b56e7d83f05d81fae91b921c8
Author: Andras Timar <atimar at suse.com>
Date:   Tue May 21 03:43:52 2013 -0700

    make 64-bit shell extensions work, put 64-bit VC runtime in the same dir
    
    Unlike in case of msvcr90.dll, which went to WinSxS, msvcr100.dll is installed
    to the "system32" folder. Windows installer automatically replaces it to
    SysWOW64. The problem is that this way 64-bit dlls end up in the wrong directory.
    They conflict with the 32-bit dlls, and will not be installed. Therefore
    64-bit shell extensions will not work, unless the 64-bit VC runtime is
    installed from other source. It is not possible to install both 32-bit and
    64-bit VC Runtime with merge modules in case of VS 2010 and VS 2012.
    For the 64-bit shell extensions, we can install the runtime dlls next to the files.
    
    Conflicts:
    
    	scp2/source/ooo/vc_redist.scp
    
    Change-Id: I47060f8ff764ca1156596139ecbec003f964bc60
    Reviewed-on: https://gerrit.libreoffice.org/3990
    Reviewed-by: Fridrich Strba <fridrich at documentfoundation.org>
    Tested-by: Fridrich Strba <fridrich at documentfoundation.org>

diff --git a/download b/download
index 985443c..a04d1f4 100755
--- a/download
+++ b/download
@@ -50,14 +50,9 @@ if [ "$COM" = "MSC" -a "$CPUNAME" = "INTEL" ]; then
 fi
 
 if [ "$COM" = "MSC" ]; then
-    if [ "$CPUNAME" = "INTEL" ]; then
-        ver=""
-    else
-        ver="-64"
-    fi
     # use oowintool to copy CRT dlls and manifest
-    if ! ./oowintool --msvc-copy-dlls"$ver" ./external/msvcp ; then
-       echo "oowintool failed to copy CRT"
+    if ! ./oowintool --msvc-copy-dlls-64 ./external/msvcp ; then
+       echo "oowintool failed to copy 64-bit CRT"
        exit 1
     fi
 
@@ -66,11 +61,6 @@ if [ "$COM" = "MSC" ]; then
        echo "oowintool failed to copy merge modules"
        exit 1
     fi
-    if [ "$CPUNAME" = "INTEL" ]; then
-        if ! ./oowintool --msvc-copy-msms-64 ./external/msm"$VCVER" ; then
-           echo "WARNING: oowintool failed to copy x64 merge modules, installation will lack the 64-bit Explorer extension"
-        fi
-    fi
 fi
 
 # Local Variables:
diff --git a/external/msvcp100/README_msvcX100.dll b/external/msvcp100/README_msvcX100.dll
index a1b0e73..ada64ed 100644
--- a/external/msvcp100/README_msvcX100.dll
+++ b/external/msvcp100/README_msvcX100.dll
@@ -1,2 +1,2 @@
-Put msvcp100.dll, msvcr100.dll in this directory for Windows builds using a
+Put 64-bit msvcp100.dll, msvcr100.dll in this directory for Windows builds using a
 VS 2010 / VC 10.0 compiler.
diff --git a/external/prj/d.lst b/external/prj/d.lst
index 7ee2582..c357edc 100644
--- a/external/prj/d.lst
+++ b/external/prj/d.lst
@@ -36,6 +36,10 @@ mkdir: %_DEST%\inc\external\wine
 ..\msvcp90\msvcr90*.dll %_DEST%\bin
 ..\msvcp90\Microsoft.VC90.CRT.manifest %_DEST%\bin\Microsoft.VC90.CRT.manifest
 ..\msvcp90\Microsoft.VC90.DebugCRT.manifest %_DEST%\bin\Microsoft.VC90.DebugCRT.manifest
+..\msvcp100\msvcp100*.dll %_DEST%\bin
+..\msvcp100\msvcr100*.dll %_DEST%\bin
+..\msvcp110\msvcp110*.dll %_DEST%\bin
+..\msvcp110\msvcr110*.dll %_DEST%\bin
 ..\msm90\*.msm %_DEST%\bin
 ..\msm100\*.msm %_DEST%\bin
 ..\msm110\*.msm %_DEST%\bin
diff --git a/oowintool b/oowintool
index 26221f0..6f5ab7c 100755
--- a/oowintool
+++ b/oowintool
@@ -313,7 +313,7 @@ sub msvc_copy_dlls($$)
     my $srcdir = (cygpath ($ver->{'product_dir'}, 'w', 'u') . '/' .
           $ver->{'dll_path'});
 
-    $srcdir =~ s/x86/amd64/ if ($arch eq 'amd64');
+    $srcdir =~ s|/x86/|/x64/| if ($arch eq 'amd64');
 
     copy_dll ($srcdir, "msvcp" . $ver->{'dll_suffix'} . ".dll",
           $dest . $ver->{'dll_suffix'});
diff --git a/scp2/source/ooo/vc_redist.scp b/scp2/source/ooo/vc_redist.scp
index fa7d1c2..82cd0d0 100644
--- a/scp2/source/ooo/vc_redist.scp
+++ b/scp2/source/ooo/vc_redist.scp
@@ -87,26 +87,4 @@ End
 
 #endif
 
-#if defined(WITH_VC100_REDIST)
-
-MergeModule gid_MergeModule_Microsoft_VC100_CRT_x64
-    Feature = gm_Root;
-    Name = "Microsoft_VC100_CRT_x64.msm";
-    RootDir = "TARGETDIR";
-    ComponentCondition = "VC_REDIST=1";
-End
-
-#endif
-
-#if defined(WITH_VC110_REDIST)
-
-MergeModule gid_MergeModule_Microsoft_VC110_CRT_x64
-    Feature = gm_Root;
-    Name = "Microsoft_VC110_CRT_x64.msm";
-    RootDir = "TARGETDIR";
-    ComponentCondition = "VC_REDIST=1";
-End
-
-#endif
-
 #endif
diff --git a/scp2/source/winexplorerext/file_winexplorerext.scp b/scp2/source/winexplorerext/file_winexplorerext.scp
index f2a2a89..1aadacf 100644
--- a/scp2/source/winexplorerext/file_winexplorerext.scp
+++ b/scp2/source/winexplorerext/file_winexplorerext.scp
@@ -95,3 +95,48 @@ File gid_File_Lib_Shlxtmsi
     Dir = SCP2_OOO_BIN_DIR;
     Name = "shlxtmsi.dll";
 End
+
+#ifdef BUILD_X64
+
+#if defined(WITH_VC100_REDIST)
+
+File gid_File_Lib_Msvcr100
+    LIB_FILE_BODY;
+    Styles = (PACKED);
+    Dir = gid_Dir_Shlxthdl;
+    Name = "msvcr100.dll";
+    ComponentCondition = "VersionNT64";
+End
+
+File gid_File_Lib_Msvcp100
+    LIB_FILE_BODY;
+    Styles = (PACKED);
+    Dir = gid_Dir_Shlxthdl;
+    Name = "msvcp100.dll";
+    ComponentCondition = "VersionNT64";
+End
+
+#endif
+
+#if defined(WITH_VC110_REDIST)
+
+File gid_File_Lib_Msvcr110
+    LIB_FILE_BODY;
+    Styles = (PACKED);
+    Dir = gid_Dir_Shlxthdl;
+    Name = "msvcr110.dll";
+    ComponentCondition = "VersionNT64";
+End
+
+File gid_File_Lib_Msvcp110
+    LIB_FILE_BODY;
+    Styles = (PACKED);
+    Dir = gid_Dir_Shlxthdl;
+    Name = "msvcp110.dll";
+    ComponentCondition = "VersionNT64";
+End
+
+#endif
+
+#endif
+
diff --git a/scp2/source/winexplorerext/module_winexplorerext.scp b/scp2/source/winexplorerext/module_winexplorerext.scp
index 3932e4f..6756a30 100644
--- a/scp2/source/winexplorerext/module_winexplorerext.scp
+++ b/scp2/source/winexplorerext/module_winexplorerext.scp
@@ -51,5 +51,9 @@ Module gid_Module_Optional_Winexplorerext_x64
     Dirs = (gid_Dir_Shlxthdl);
     Files = (gid_File_Lib_Shlxthdl64,
              gid_File_Lib_OOoFilt64,
-             gid_File_Lib_PropertyHdl64);
+             gid_File_Lib_PropertyHdl64,
+             gid_File_Lib_Msvcp100,
+             gid_File_Lib_Msvcr100,
+             gid_File_Lib_Msvcp110,
+             gid_File_Lib_Msvcr110);
 End


More information about the Libreoffice-commits mailing list