diff options
-rwxr-xr-x | oowintool | 16 | ||||
-rw-r--r-- | post_download.in | 12 |
2 files changed, 17 insertions, 11 deletions
diff --git a/oowintool b/oowintool index bf5c5d977fbc..6cb98a32b5a6 100755 --- a/oowintool +++ b/oowintool @@ -46,7 +46,8 @@ sub print_syntax() print " commands:\n"; print " --msvc-ver - print version of MSVC eg. 6.0\n"; print " --msvc-copy-dlls <dest> - copy msvc[pr]??.dlls into <dest>/msvcp??/\n"; - print " --msvc-copy-msms <dest> - copy mscrt merge modules <dest>/msm90/\n"; + print " --msvc-copy-msms <dest> - copy mscrt merge modules to <dest>/msm90/\n"; + print " --msvc-copy-msms-64 <ds>- copy the x64 mscrt merge modules to <ds>/msm90/\n"; print " --msvc-productdir - print productdir\n"; print " --msvs-productdir - print productdir\n"; print " --dotnetsdk-dir - print .NET SDK path\n"; @@ -285,16 +286,17 @@ sub msvc_copy_dlls($) } } -sub msvc_copy_msms($) +sub msvc_copy_msms($$) { - my $dest = shift; + # $postfix is empty for x86, and '_x64' for x64 + my ($dest, $postfix) = @_; my $common_files_path = $ENV{"CommonProgramFiles(x86)"}; if (!defined $common_files_path) { $common_files_path = $ENV{CommonProgramFiles}; } defined $common_files_path || return; my $msm_path = (cygpath $common_files_path . "\\Merge Modules", 'w', $output_format); - foreach $fname ('Microsoft_VC90_CRT_x86.msm', 'Microsoft_VC90_CRT_x86_x64.msm', 'policy_9_0_Microsoft_VC90_CRT_x86.msm', 'policy_9_0_Microsoft_VC90_CRT_x86_x64.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"; copy ("$msm_path/$fname", $dest) || die "copy failed: $!"; } @@ -330,7 +332,11 @@ while (@commands) { } 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, '' ); + } elsif ($opt eq '--msvc-copy-msms-64') { + my $dest = shift @commands; + defined $dest || die "copy-msms-64 requires a destination directory"; + msvc_copy_msms( $dest, '_x64' ); } elsif ($opt eq '--msvs-productdir') { print_msvs_productdir(); } elsif ($opt eq '--msvc-productdir') { diff --git a/post_download.in b/post_download.in index c93cd270da71..ea6b9433adb7 100644 --- a/post_download.in +++ b/post_download.in @@ -38,9 +38,7 @@ dnl =================================================================== dnl Windows builds - use oowintool to copy CRT dlls and manifest dnl =================================================================== if test "$COM" = "MSC"; then - if ./oowintool --msvc-copy-dlls ./external/msvcp ; then - : - else + if ! ./oowintool --msvc-copy-dlls ./external/msvcp ; then AC_MSG_ERROR([oowintool failed to copy CRT]) fi fi @@ -49,11 +47,13 @@ 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 - : - else + if ! ./oowintool --msvc-copy-msms ./external/msm90 ; then AC_MSG_ERROR([oowintool failed to copy merge modules]) fi + if ! ./oowintool --msvc-copy-msms-64 ./external/msm90 ; then + AC_MSG_WARN([oowintool failed to copy x64 merge modules, installation +will lack the 64-bit Explorer extension]) + fi fi dnl =================================================================== |