summaryrefslogtreecommitdiff
path: root/scp2
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2013-05-21 03:43:52 -0700
committerAndras Timar <atimar@suse.com>2013-05-21 03:43:52 -0700
commitb0a3cb212a2b53b2a6551b9c7f23355de7157e7c (patch)
treed89f741ec5652097e5cf5a2d490f7b652419f67e /scp2
parent71101052ca31ef5da3700fdcf5540d22529d4ff2 (diff)
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. Change-Id: I47060f8ff764ca1156596139ecbec003f964bc60
Diffstat (limited to 'scp2')
-rw-r--r--scp2/source/ooo/vc_redist.scp22
-rw-r--r--scp2/source/winexplorerext/file_winexplorerext.scp45
-rw-r--r--scp2/source/winexplorerext/module_winexplorerext.scp6
3 files changed, 50 insertions, 23 deletions
diff --git a/scp2/source/ooo/vc_redist.scp b/scp2/source/ooo/vc_redist.scp
index 283ba9c6c0d1..82cd0d08d9b1 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) AND VersionNT64";
-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) AND VersionNT64";
-End
-
-#endif
-
#endif
diff --git a/scp2/source/winexplorerext/file_winexplorerext.scp b/scp2/source/winexplorerext/file_winexplorerext.scp
index f2a2a89e8ec6..1aadacf9c6d1 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 3932e4f4d7c9..6756a305829a 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