1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-05 07:21:24 +03:00

Replace backslashes by forward slashes in MSVC build code

This makes it possible to run some stages of these build scripts on
non-Windows systems.  That way, we can more easily test whether file
moves or makefile changes might break the MSVC build.

Peter Eisentraut and Michael Paquier
This commit is contained in:
Peter Eisentraut
2015-04-25 08:52:03 -04:00
parent 410cbfd6dd
commit 854adb8371
4 changed files with 261 additions and 263 deletions

View File

@ -52,20 +52,19 @@ sub AddFiles
while (my $f = shift)
{
$self->{files}->{ $dir . "\\" . $f } = 1;
$self->{files}->{ $dir . "/" . $f } = 1;
}
}
sub ReplaceFile
{
my ($self, $filename, $newname) = @_;
my $re = "\\\\$filename\$";
my $re = "\\/$filename\$";
foreach my $file (keys %{ $self->{files} })
{
# Match complete filename
if ($filename =~ /\\/)
if ($filename =~ m!/!)
{
if ($file eq $filename)
{
@ -77,7 +76,7 @@ sub ReplaceFile
elsif ($file =~ m/($re)/)
{
delete $self->{files}{$file};
$self->{files}{"$newname\\$filename"} = 1;
$self->{files}{"$newname/$filename"} = 1;
return;
}
}
@ -105,7 +104,7 @@ sub RelocateFiles
if ($r)
{
$self->RemoveFile($f);
$self->AddFile($targetdir . '\\' . basename($f));
$self->AddFile($targetdir . '/' . basename($f));
}
}
}
@ -118,7 +117,7 @@ sub AddReference
{
push @{ $self->{references} }, $ref;
$self->AddLibrary(
"__CFGNAME__\\" . $ref->{name} . "\\" . $ref->{name} . ".lib");
"__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib");
}
}
@ -169,8 +168,8 @@ sub FullExportDLL
my ($self, $libname) = @_;
$self->{builddef} = 1;
$self->{def} = ".\\__CFGNAME__\\$self->{name}\\$self->{name}.def";
$self->{implib} = "__CFGNAME__\\$self->{name}\\$libname";
$self->{def} = "./__CFGNAME__/$self->{name}/$self->{name}.def";
$self->{implib} = "__CFGNAME__/$self->{name}/$libname";
}
sub UseDef
@ -194,9 +193,9 @@ sub AddDir
if $subdir eq "\$(top_builddir)/src/timezone"
; #special case for non-standard include
next
if $reldir . "\\" . $subdir eq "src\\backend\\port\\darwin";
if $reldir . "/" . $subdir eq "src/backend/port/darwin";
$self->AddDir($reldir . "\\" . $subdir);
$self->AddDir($reldir . "/" . $subdir);
}
}
while ($mf =~ m{^(?:EXTRA_)?OBJS[^=]*=\s*(.*)$}m)
@ -243,13 +242,11 @@ sub AddDir
if ($f =~ /^\$\(top_builddir\)\/(.*)/)
{
$f = $1;
$f =~ s/\//\\/g;
$self->{files}->{$f} = 1;
}
else
{
$f =~ s/\//\\/g;
$self->{files}->{"$reldir\\$f"} = 1;
$self->{files}->{"$reldir/$f"} = 1;
}
}
$mf =~ s{OBJS[^=]*=\s*(.*)$}{}m;
@ -264,7 +261,6 @@ sub AddDir
my $match = $1;
my $top = $2;
my $target = $3;
$target =~ s{/}{\\}g;
my @pieces = split /\s+/, $match;
foreach my $fn (@pieces)
{
@ -274,7 +270,7 @@ sub AddDir
}
elsif ($top eq "(backend_src)")
{
eval { $self->ReplaceFile($fn, "src\\backend\\$target") };
eval { $self->ReplaceFile($fn, "src/backend/$target") };
}
else
{
@ -310,12 +306,12 @@ sub AddResourceFile
localtime(time);
my $d = sprintf("%02d%03d", ($year - 100), $yday);
if (Solution::IsNewer("$dir\\win32ver.rc", 'src\port\win32ver.rc'))
if (Solution::IsNewer("$dir/win32ver.rc", 'src/port/win32ver.rc'))
{
print "Generating win32ver.rc for $dir\n";
open(I, 'src\port\win32ver.rc')
open(I, 'src/port/win32ver.rc')
|| confess "Could not open win32ver.rc";
open(O, ">$dir\\win32ver.rc")
open(O, ">$dir/win32ver.rc")
|| confess "Could not write win32ver.rc";
my $icostr = $ico ? "IDI_ICON ICON \"src/port/$ico.ico\"" : "";
while (<I>)
@ -332,7 +328,7 @@ sub AddResourceFile
}
close(O);
close(I);
$self->AddFile("$dir\\win32ver.rc");
$self->AddFile("$dir/win32ver.rc");
}
sub DisableLinkerWarnings
@ -415,9 +411,9 @@ sub read_makefile
my $t = $/;
undef $/;
open($F, "$reldir\\GNUmakefile")
|| open($F, "$reldir\\Makefile")
|| croak "Could not open $reldir\\Makefile\n";
open($F, "$reldir/GNUmakefile")
|| open($F, "$reldir/Makefile")
|| confess "Could not open $reldir/Makefile\n";
my $txt = <$F>;
close($F);
$/ = $t;