Kaydet (Commit) 59bf5321 authored tarafından Peter Foley's avatar Peter Foley Kaydeden (comit) David Tardon

fix msm suport for VS2012

Change-Id: Ibc816de83eb48163671948ecc84e7653f2b4ec13
üst e994a910
......@@ -622,6 +622,7 @@ export USE_XINERAMA=@USE_XINERAMA@
export UUIDGEN=@UUIDGEN@
export VALGRIND_CFLAGS=@VALGRIND_CFLAGS@
export VALIDATOR_EXTENSION_PACK=@VALIDATOR_EXTENSION_PACK@
export VCVER=@VCVER@
export VERBOSE=@VERBOSE@
export VIGRA_TARBALL=@VIGRA_TARBALL@
export VISIO_CFLAGS=@VISIO_CFLAGS@
......
......@@ -3185,12 +3185,15 @@ if test "$_os" = "WINNT"; then
if test "$CCNUMVER" -ge "001700000000"; then
COMEX=14
MSVSVER=2012
VCVER=110
elif test "$CCNUMVER" -ge "001600000000"; then
COMEX=13
MSVSVER=2010
VCVER=100
elif test "$CCNUMVER" -ge "001500000000"; then
COMEX=12
MSVSVER=2008
VCVER=90
else
AC_MSG_ERROR([Compiler too old. Use Microsoft Visual Studio 2008 or 2010.])
fi
......@@ -3270,6 +3273,7 @@ if test "$_os" = "WINNT"; then
fi
fi
AC_SUBST(COMEX)
AC_SUBST(VCVER)
PathFormat "$MSPDB_PATH"
MSPDB_PATH="$formatted_path"
AC_SUBST(SHOWINCLUDES_PREFIX)
......@@ -5675,10 +5679,10 @@ fi
AC_SUBST([JITC_PROCESSOR_TYPE])
if test $_os = "WINNT"; then
AC_MSG_CHECKING([for Microsoft_VC100_CRT_x86.msm])
if ./oowintool --msvc-find-msms-vc100; then
AC_MSG_CHECKING([for Microsoft_VC"$VCVER"_CRT_x86.msm])
if ./oowintool --msvc-find-msms; then
AC_MSG_RESULT([yes])
SCPDEFS="$SCPDEFS -DWITH_VC100_REDIST"
SCPDEFS="$SCPDEFS -DWITH_VC"$VCVER"_REDIST"
else
AC_MSG_RESULT([no])
fi
......
Put
Microsoft_VC100_CRT_x86.msm
into this directory for Windows builds using a VS 2010 / VC 10.0 compiler.
For builds with --enable-dbgutil also put
Microsoft_VC100_DebugCRT_x86.msm
here.
Put
Microsoft_VC110_CRT_x86.msm
into this directory for Windows builds using a VS 2012 / VC 11.0 compiler.
For builds with --enable-dbgutil also put
Microsoft_VC110_DebugCRT_x86.msm
here.
......@@ -44,6 +44,8 @@ mkdir: %_DEST%\inc\external\wine
..\msvcp90\Microsoft.VC90.CRT.manifest %_DEST%\bin\Microsoft.VC90.CRT.manifest
..\msvcp90\Microsoft.VC90.DebugCRT.manifest %_DEST%\bin\Microsoft.VC90.DebugCRT.manifest
..\msm90\*.msm %_DEST%\bin
..\msm100\*.msm %_DEST%\bin
..\msm110\*.msm %_DEST%\bin
..\unowinreg\unowinreg.dll %_DEST%\bin\unowinreg.dll
......
Table Column Nullable MinValue MaxValue KeyTable KeyColumn Category Set Description
s32 s32 s4 I4 I4 S255 I2 S32 S255 S255
_Validation Table Column
_Validation Category Y Text;Formatted;Template;Condition;Guid;Path;Version;Language;Identifier;Binary;UpperCase;LowerCase;Filename;Paths;AnyPath;WildCardFilename;RegPath;KeyFormatted;CustomSource;Property;Cabinet;Shortcut;URL String category
_Validation Column N Identifier Name of column
_Validation Description Y Text Description of column
_Validation KeyColumn Y 1 32 Column to which foreign key connects
......
......@@ -310,11 +310,12 @@ sub msvc_copy_dlls($)
}
}
sub msvc_find_msms_vc100()
sub msvc_find_msms()
{
my $msm_path = (cygpath reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/9.0/Setup/VS/MSMDir"), 'w', $output_format);
my $ver = find_msvc();
my $msm_path = (cygpath reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/$ver->{'ver'}/Setup/VS/MSMDir"), 'w', $output_format);
defined $msm_path || die "MSMDir not found";
return -e "$msm_path/Microsoft_VC100_CRT_x86.msm" ? 0 : 1;
return -e "$msm_path/Microsoft_VC".$ver->{'dll_suffix'}."_CRT_x86.msm" ? 0 : 1;
}
sub msvc_copy_msms($$)
......@@ -323,18 +324,31 @@ sub msvc_copy_msms($$)
my ($dest, $postfix) = @_;
my $ver = find_msvc();
(defined $ver && ($ver->{'ver'} eq '9.0')) || return;
defined $ver || return;
my $msm_path = (cygpath reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/9.0/Setup/VS/MSMDir"), 'w', $output_format);
my $msm_path = (cygpath reg_get_value ("HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/VisualStudio/$ver->{'ver'}/Setup/VS/MSMDir"), 'w', $output_format);
defined $msm_path || die "MSMDir not found";
if ($ver->{'dll_suffix'} == 90) {
if ( $postfix eq "_x86" ) {
$postfix = ""
}
foreach $fname ("Microsoft_VC90_CRT_x86$postfix.msm", "policy_9_0_Microsoft_VC90_CRT_x86$postfix.msm") {
print STDERR "Copying $msm_path/$fname to $dest\n";
copy ("$msm_path/$fname", $dest) || die "copy failed: $!";
}
foreach $fname ("Microsoft_VC100_CRT_x86$postfix.msm") {
}
elsif ($ver->{'dll_suffix'} == 100) {
foreach $fname ("Microsoft_VC100_CRT$postfix.msm") {
print STDERR "Copying $msm_path/$fname to $dest\n";
copy ("$msm_path/$fname", $dest) || print "copy failed: $!\n";
}
}
else {
foreach $fname ("Microsoft_VC110_CRT$postfix.msm") {
print STDERR "Copying $msm_path/$fname to $dest\n";
copy ("$msm_path/$fname", $dest) || print "copy failed: $!\n";
}
}
}
if (!@ARGV) {
......@@ -364,12 +378,12 @@ while (@commands) {
my $dest = shift @commands;
defined $dest || die "copy-dlls requires a destination directory";
msvc_copy_dlls( $dest );
} elsif ($opt eq '--msvc-find-msms-vc100') {
exit msvc_find_msms_vc100();
} elsif ($opt eq '--msvc-find-msms') {
exit msvc_find_msms();
} elsif ($opt eq '--msvc-copy-msms') {
my $dest = shift @commands;
defined $dest || die "copy-msms requires a destination directory";
msvc_copy_msms( $dest, '' );
msvc_copy_msms( $dest, '_x86' );
} elsif ($opt eq '--msvc-copy-msms-64') {
my $dest = shift @commands;
defined $dest || die "copy-msms-64 requires a destination directory";
......
......@@ -47,10 +47,10 @@ dnl ===================================================================
dnl Windows builds - use oowintool to copy VC redist merge modules
dnl ===================================================================
if test "$COM" = "MSC"; then
if ! ./oowintool --msvc-copy-msms ./external/msm90 ; then
if ! ./oowintool --msvc-copy-msms ./external/msm"$VCVER" ; then
AC_MSG_ERROR([oowintool failed to copy merge modules])
fi
if ! ./oowintool --msvc-copy-msms-64 ./external/msm90 ; then
if ! ./oowintool --msvc-copy-msms-64 ./external/msm"$VCVER" ; then
AC_MSG_WARN([oowintool failed to copy x64 merge modules, installation
will lack the 64-bit Explorer extension])
fi
......
......@@ -27,6 +27,8 @@
#include "macros.inc"
#if defined(WITH_VC90_REDIST)
MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86
Feature = gm_Root;
Name = "Microsoft_VC90_CRT_x86.msm";
......@@ -34,6 +36,15 @@ MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86
ComponentCondition = "VC_REDIST=1";
End
MergeModule gid_MergeModule_policy_9_0_Microsoft_VC90_CRT_x86
Feature = gm_Root;
Name = "policy_9_0_Microsoft_VC90_CRT_x86.msm";
RootDir = "TARGETDIR";
ComponentCondition = "VC_REDIST=1";
End
#endif
#if defined(WITH_VC100_REDIST)
MergeModule gid_MergeModule_Microsoft_VC100_CRT_x86
......@@ -45,15 +56,21 @@ End
#endif
MergeModule gid_MergeModule_policy_9_0_Microsoft_VC90_CRT_x86
#if defined(WITH_VC110_REDIST)
MergeModule gid_MergeModule_Microsoft_VC110_CRT_x86
Feature = gm_Root;
Name = "policy_9_0_Microsoft_VC90_CRT_x86.msm";
Name = "Microsoft_VC110_CRT_x86.msm";
RootDir = "TARGETDIR";
ComponentCondition = "VC_REDIST=1";
End
#endif
#if defined(BUILD_X64)
#if defined(WITH_VC90_REDIST)
MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86_x64
Feature = gm_Root;
Name = "Microsoft_VC90_CRT_x86_x64.msm";
......@@ -69,3 +86,27 @@ MergeModule gid_MergeModule_policy_9_0_Microsoft_VC90_CRT_x86_x64
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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment