From: Andrew Dunstan <andrew@dunslane.net>
Date: Fri, 8 Apr 2011 02:16:56 +0000 (-0400)
Subject: Avoid use of mixed slash style paths in arguments to xcopy in MSVC builds.
X-Git-Tag: REL9_0_4~14
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a5c629f373a8125cd7682083a290fff452db3757;p=postgresql

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.
---

diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index d367bae1bf..ead866291f 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -437,15 +437,17 @@ sub CopyIncludeFiles
     my $D;
     opendir($D, 'src/include') || croak "Could not opendir on src/include!\n";
 
+	# 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 '.git');
         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);