diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm index a16f9acefc..3d60b64ec9 100644 --- a/src/tools/msvc/MSBuildProject.pm +++ b/src/tools/msvc/MSBuildProject.pm @@ -143,7 +143,7 @@ EOF # File already exists, so fake a new name my $obj = $dir; - $obj =~ s/\\/_/g; + $obj =~ s!/!_!g; print $f < diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index 344b75ff82..cfb9b24a02 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -33,12 +33,10 @@ my $contrib_defines = { 'refint' => 'REFINT_VERBOSE' }; my @contrib_uselibpq = ('dblink', 'oid2name', 'postgres_fdw', 'vacuumlo'); my @contrib_uselibpgport = ( - 'chkpass', 'oid2name', 'pg_standby', 'vacuumlo'); my @contrib_uselibpgcommon = ( - 'chkpass', 'oid2name', 'pg_standby', 'vacuumlo'); diff --git a/src/tools/msvc/VCBuildProject.pm b/src/tools/msvc/VCBuildProject.pm index dda662f369..3a24c4e52f 100644 --- a/src/tools/msvc/VCBuildProject.pm +++ b/src/tools/msvc/VCBuildProject.pm @@ -75,43 +75,48 @@ EOF my $dir = $1; my $file = $2; - # Walk backwards down the directory stack and close any dirs we're done with + # Walk backwards down the directory stack and close any dirs + # we're done with. while ($#dirstack >= 0) { - if (join('\\', @dirstack) eq - substr($dir, 0, length(join('\\', @dirstack)))) + if (join('/', @dirstack) eq + substr($dir, 0, length(join('/', @dirstack)))) { - last if (length($dir) == length(join('\\', @dirstack))); + last if (length($dir) == length(join('/', @dirstack))); last - if (substr($dir, length(join('\\', @dirstack)), 1) eq '\\'); + if (substr($dir, length(join('/', @dirstack)), 1) eq '/'); } print $f ' ' x $#dirstack . " \n"; pop @dirstack; } # Now walk forwards and create whatever directories are needed - while (join('\\', @dirstack) ne $dir) + while (join('/', @dirstack) ne $dir) { - my $left = substr($dir, length(join('\\', @dirstack))); - $left =~ s/^\\//; - my @pieces = split /\\/, $left; + my $left = substr($dir, length(join('/', @dirstack))); + $left =~ s/^\///; + my @pieces = split /\//, $left; push @dirstack, $pieces[0]; print $f ' ' x $#dirstack . " \n"; } + # VC builds do not like file paths with forward slashes. + my $fileNameWithPathFormatted = $fileNameWithPath; + $fileNameWithPathFormatted =~ s/\//\\/g; + print $f ' ' x $#dirstack - . " ' . $self->GenerateCustomTool( 'Running bison on ' . $fileNameWithPath, - "perl src\\tools\\msvc\\pgbison.pl $fileNameWithPath", $of) + "perl src/tools/msvc/pgbison.pl $fileNameWithPath", $of) . '' . "\n"; } elsif ($fileNameWithPath =~ /\.l$/) @@ -121,7 +126,7 @@ s{^src\\pl\\plpgsql\\src\\gram.c$}{src\\pl\\plpgsql\\src\\pl_gram.c}; print $f '>' . $self->GenerateCustomTool( 'Running flex on ' . $fileNameWithPath, - "perl src\\tools\\msvc\\pgflex.pl $fileNameWithPath", $of) + "perl src/tools/msvc/pgflex.pl $fileNameWithPath", $of) . '' . "\n"; } elsif (defined($uniquefiles{$file})) @@ -129,7 +134,7 @@ s{^src\\pl\\plpgsql\\src\\gram.c$}{src\\pl\\plpgsql\\src\\pl_gram.c}; # File already exists, so fake a new name my $obj = $dir; - $obj =~ s/\\/_/g; + $obj =~ s!/!_!g; print $f ">{platform}\">{name}\\$obj" . "_$file.obj\" />{platform}\">{name}\\$obj"