From 5fe33744432f7509a07bccef51d07be64f3827f0 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan <andrew@dunslane.net> Date: Thu, 7 Apr 2011 22:16:43 -0400 Subject: [PATCH] Avoid use of mixed slash style paths in arguments to xcopy in MSVC builds. Some versions of xcopy, notably on Windows 7 don't like it. Backpatch to 8.3, where we first used xcopy. --- src/tools/msvc/Install.pm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm index bda08ac1ae..c9925bfac0 100644 --- a/src/tools/msvc/Install.pm +++ b/src/tools/msvc/Install.pm @@ -424,15 +424,16 @@ sub CopyIncludeFiles my $D; opendir($D, 'src/include') || croak "Could not opendir on src/include!\n"; - while (my $d = readdir($D)) + # some xcopy progs don't like mixed slash style paths + (my $ctarget = $target) =~ s!/!\\!g; + while (my $d = readdir($D)) { next if ($d =~ /^\./); next if ($d eq 'CVS'); - next unless (-d 'src/include/' . $d); + next unless (-d "src/include/$d"); - EnsureDirectories($target . '/include/server', $d); - system( - "xcopy /s /i /q /r /y src\\include\\$d\\*.h \"$target\\include\\server\\$d\\\"") + EnsureDirectories("$target/include/server/$d"); + system(qq{xcopy /s /i /q /r /y src\\include\\$d\\*.h "$ctarget\\include\\server\\$d\\"}) && croak("Failed to copy include directory $d\n"); } closedir($D);