diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index 482f10051b1aa5bf0f10c46b8dd199e173e18249..94ecb657cfcbaae7a502a9e3b50b6bcb601cb950 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -344,9 +344,17 @@ sub mkvcbuild $pgdump->AddFile('src\backend\parser\kwlookup.c'); my $pgdumpall = AddSimpleFrontend('pg_dump', 1); + # pg_dumpall doesn't use the files in the Makefile's $(OBJS), unlike + # pg_dump and pg_restore. + # So remove their sources from the object, keeping the other setup that + # AddSimpleFrontend() has done. + my @nodumpall = grep { m/src\\bin\\pg_dump\\.*\.c$/ } + keys %{$pgdumpall->{files}}; + delete @{$pgdumpall->{files}}{@nodumpall}; $pgdumpall->{name} = 'pg_dumpall'; $pgdumpall->AddIncludeDir('src\backend'); $pgdumpall->AddFile('src\bin\pg_dump\pg_dumpall.c'); + $pgdumpall->AddFile('src\bin\pg_dump\dumputils.c'); $pgdumpall->AddFile('src\bin\pg_dump\keywords.c'); $pgdumpall->AddFile('src\backend\parser\kwlookup.c');