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@ ...@@ -622,6 +622,7 @@ export USE_XINERAMA=@USE_XINERAMA@
export UUIDGEN=@UUIDGEN@ export UUIDGEN=@UUIDGEN@
export VALGRIND_CFLAGS=@VALGRIND_CFLAGS@ export VALGRIND_CFLAGS=@VALGRIND_CFLAGS@
export VALIDATOR_EXTENSION_PACK=@VALIDATOR_EXTENSION_PACK@ export VALIDATOR_EXTENSION_PACK=@VALIDATOR_EXTENSION_PACK@
export VCVER=@VCVER@
export VERBOSE=@VERBOSE@ export VERBOSE=@VERBOSE@
export VIGRA_TARBALL=@VIGRA_TARBALL@ export VIGRA_TARBALL=@VIGRA_TARBALL@
export VISIO_CFLAGS=@VISIO_CFLAGS@ export VISIO_CFLAGS=@VISIO_CFLAGS@
......
...@@ -3185,12 +3185,15 @@ if test "$_os" = "WINNT"; then ...@@ -3185,12 +3185,15 @@ if test "$_os" = "WINNT"; then
if test "$CCNUMVER" -ge "001700000000"; then if test "$CCNUMVER" -ge "001700000000"; then
COMEX=14 COMEX=14
MSVSVER=2012 MSVSVER=2012
VCVER=110
elif test "$CCNUMVER" -ge "001600000000"; then elif test "$CCNUMVER" -ge "001600000000"; then
COMEX=13 COMEX=13
MSVSVER=2010 MSVSVER=2010
VCVER=100
elif test "$CCNUMVER" -ge "001500000000"; then elif test "$CCNUMVER" -ge "001500000000"; then
COMEX=12 COMEX=12
MSVSVER=2008 MSVSVER=2008
VCVER=90
else else
AC_MSG_ERROR([Compiler too old. Use Microsoft Visual Studio 2008 or 2010.]) AC_MSG_ERROR([Compiler too old. Use Microsoft Visual Studio 2008 or 2010.])
fi fi
...@@ -3270,6 +3273,7 @@ if test "$_os" = "WINNT"; then ...@@ -3270,6 +3273,7 @@ if test "$_os" = "WINNT"; then
fi fi
fi fi
AC_SUBST(COMEX) AC_SUBST(COMEX)
AC_SUBST(VCVER)
PathFormat "$MSPDB_PATH" PathFormat "$MSPDB_PATH"
MSPDB_PATH="$formatted_path" MSPDB_PATH="$formatted_path"
AC_SUBST(SHOWINCLUDES_PREFIX) AC_SUBST(SHOWINCLUDES_PREFIX)
...@@ -5675,10 +5679,10 @@ fi ...@@ -5675,10 +5679,10 @@ fi
AC_SUBST([JITC_PROCESSOR_TYPE]) AC_SUBST([JITC_PROCESSOR_TYPE])
if test $_os = "WINNT"; then if test $_os = "WINNT"; then
AC_MSG_CHECKING([for Microsoft_VC100_CRT_x86.msm]) AC_MSG_CHECKING([for Microsoft_VC"$VCVER"_CRT_x86.msm])
if ./oowintool --msvc-find-msms-vc100; then if ./oowintool --msvc-find-msms; then
AC_MSG_RESULT([yes]) AC_MSG_RESULT([yes])
SCPDEFS="$SCPDEFS -DWITH_VC100_REDIST" SCPDEFS="$SCPDEFS -DWITH_VC"$VCVER"_REDIST"
else else
AC_MSG_RESULT([no]) AC_MSG_RESULT([no])
fi 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 ...@@ -44,6 +44,8 @@ mkdir: %_DEST%\inc\external\wine
..\msvcp90\Microsoft.VC90.CRT.manifest %_DEST%\bin\Microsoft.VC90.CRT.manifest ..\msvcp90\Microsoft.VC90.CRT.manifest %_DEST%\bin\Microsoft.VC90.CRT.manifest
..\msvcp90\Microsoft.VC90.DebugCRT.manifest %_DEST%\bin\Microsoft.VC90.DebugCRT.manifest ..\msvcp90\Microsoft.VC90.DebugCRT.manifest %_DEST%\bin\Microsoft.VC90.DebugCRT.manifest
..\msm90\*.msm %_DEST%\bin ..\msm90\*.msm %_DEST%\bin
..\msm100\*.msm %_DEST%\bin
..\msm110\*.msm %_DEST%\bin
..\unowinreg\unowinreg.dll %_DEST%\bin\unowinreg.dll ..\unowinreg\unowinreg.dll %_DEST%\bin\unowinreg.dll
......
Table Column Nullable MinValue MaxValue KeyTable KeyColumn Category Set Description Table Column Nullable MinValue MaxValue KeyTable KeyColumn Category Set Description
s32 s32 s4 I4 I4 S255 I2 S32 S255 S255 s32 s32 s4 I4 I4 S255 I2 S32 S255 S255
_Validation Table Column _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 Column N Identifier Name of column
_Validation Description Y Text Description of column _Validation Description Y Text Description of column
_Validation KeyColumn Y 1 32 Column to which foreign key connects _Validation KeyColumn Y 1 32 Column to which foreign key connects
......
...@@ -310,11 +310,12 @@ sub msvc_copy_dlls($) ...@@ -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"; 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($$) sub msvc_copy_msms($$)
...@@ -323,18 +324,31 @@ sub msvc_copy_msms($$) ...@@ -323,18 +324,31 @@ sub msvc_copy_msms($$)
my ($dest, $postfix) = @_; my ($dest, $postfix) = @_;
my $ver = find_msvc(); 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"; 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") { 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"; print STDERR "Copying $msm_path/$fname to $dest\n";
copy ("$msm_path/$fname", $dest) || die "copy failed: $!"; 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"; print STDERR "Copying $msm_path/$fname to $dest\n";
copy ("$msm_path/$fname", $dest) || print "copy failed: $!\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) { if (!@ARGV) {
...@@ -364,12 +378,12 @@ while (@commands) { ...@@ -364,12 +378,12 @@ while (@commands) {
my $dest = shift @commands; my $dest = shift @commands;
defined $dest || die "copy-dlls requires a destination directory"; defined $dest || die "copy-dlls requires a destination directory";
msvc_copy_dlls( $dest ); msvc_copy_dlls( $dest );
} elsif ($opt eq '--msvc-find-msms-vc100') { } elsif ($opt eq '--msvc-find-msms') {
exit msvc_find_msms_vc100(); exit msvc_find_msms();
} elsif ($opt eq '--msvc-copy-msms') { } elsif ($opt eq '--msvc-copy-msms') {
my $dest = shift @commands; my $dest = shift @commands;
defined $dest || die "copy-msms requires a destination directory"; 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') { } elsif ($opt eq '--msvc-copy-msms-64') {
my $dest = shift @commands; my $dest = shift @commands;
defined $dest || die "copy-msms-64 requires a destination directory"; defined $dest || die "copy-msms-64 requires a destination directory";
......
...@@ -47,10 +47,10 @@ dnl =================================================================== ...@@ -47,10 +47,10 @@ dnl ===================================================================
dnl Windows builds - use oowintool to copy VC redist merge modules dnl Windows builds - use oowintool to copy VC redist merge modules
dnl =================================================================== dnl ===================================================================
if test "$COM" = "MSC"; then 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]) AC_MSG_ERROR([oowintool failed to copy merge modules])
fi 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 AC_MSG_WARN([oowintool failed to copy x64 merge modules, installation
will lack the 64-bit Explorer extension]) will lack the 64-bit Explorer extension])
fi fi
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
#include "macros.inc" #include "macros.inc"
#if defined(WITH_VC90_REDIST)
MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86 MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86
Feature = gm_Root; Feature = gm_Root;
Name = "Microsoft_VC90_CRT_x86.msm"; Name = "Microsoft_VC90_CRT_x86.msm";
...@@ -34,6 +36,15 @@ MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86 ...@@ -34,6 +36,15 @@ MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86
ComponentCondition = "VC_REDIST=1"; ComponentCondition = "VC_REDIST=1";
End 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) #if defined(WITH_VC100_REDIST)
MergeModule gid_MergeModule_Microsoft_VC100_CRT_x86 MergeModule gid_MergeModule_Microsoft_VC100_CRT_x86
...@@ -45,15 +56,21 @@ End ...@@ -45,15 +56,21 @@ End
#endif #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; Feature = gm_Root;
Name = "policy_9_0_Microsoft_VC90_CRT_x86.msm"; Name = "Microsoft_VC110_CRT_x86.msm";
RootDir = "TARGETDIR"; RootDir = "TARGETDIR";
ComponentCondition = "VC_REDIST=1"; ComponentCondition = "VC_REDIST=1";
End End
#endif
#if defined(BUILD_X64) #if defined(BUILD_X64)
#if defined(WITH_VC90_REDIST)
MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86_x64 MergeModule gid_MergeModule_Microsoft_VC90_CRT_x86_x64
Feature = gm_Root; Feature = gm_Root;
Name = "Microsoft_VC90_CRT_x86_x64.msm"; Name = "Microsoft_VC90_CRT_x86_x64.msm";
...@@ -69,3 +86,27 @@ MergeModule gid_MergeModule_policy_9_0_Microsoft_VC90_CRT_x86_x64 ...@@ -69,3 +86,27 @@ MergeModule gid_MergeModule_policy_9_0_Microsoft_VC90_CRT_x86_x64
End End
#endif #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