Skip to content

Commit a64e33f

Browse files
committedFeb 25, 2013
Redo MSVC build implementation for pg_xlogdump.
The previous commit didn't work on MSVC editions earlier than Visual Studio 2011, apparently. This works by copying files into the contrib directory, and making provision to clean them up, which should work on all editions.
1 parent aa05c37 commit a64e33f

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed
 

‎src/tools/msvc/Mkvcbuild.pm

+13-4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use Project;
1313
use Solution;
1414
use Cwd;
1515
use File::Copy;
16+
use File::Basename;
1617
use Config;
1718
use VSObjectFactory;
1819
use List::Util qw(first);
@@ -49,8 +50,6 @@ my $contrib_extraincludes =
4950
my $contrib_extrasource = {
5051
'cube' => [ 'cubescan.l', 'cubeparse.y' ],
5152
'seg' => [ 'segscan.l', 'segparse.y' ],
52-
'pg_xlogdump' => [ '../../src/backend/access/transam/xlogreader.c',
53-
map { "../../$_" } glob('src/backend/access/rmgrdesc/*desc.c') ],
5453
};
5554
my @contrib_excludes = ('pgcrypto', 'intagg', 'sepgsql');
5655

@@ -586,9 +585,19 @@ sub mkvcbuild
586585
$pgregress->AddDefine('HOST_TUPLE="i686-pc-win32vc"');
587586
$pgregress->AddReference($libpgport, $libpgcommon);
588587

589-
my $pg_xlogdump = (grep {$_->{name} eq 'pg_xlogdump'} @{$solution->{projects}->{contrib}} )[0];
590-
delete $pg_xlogdump->{files}->{'contrib\\pg_xlogdump\\xlogreader.c'};
588+
# fix up pg_xlogdump once it's been set up
589+
# files symlinked on Unix are copied on windows
590+
my $pg_xlogdump = (grep {$_->{name} eq 'pg_xlogdump'}
591+
@{$solution->{projects}->{contrib}} )[0];
591592
$pg_xlogdump->AddDefine('FRONTEND');
593+
foreach my $xf (glob('src/backend/access/rmgrdesc/*desc.c') )
594+
{
595+
my $bf = basename $xf;
596+
copy($xf,"contrib/pg_xlogdump/$bf");
597+
$pg_xlogdump->AddFile("contrib\\pg_xlogdump\\$bf");
598+
}
599+
copy('src/backend/access/transam/xlogreader.c',
600+
'contrib/pg_xlogdump/xlogreader.c');
592601

593602
$solution->Save();
594603
return $solution->{vcver};

‎src/tools/msvc/clean.bat

+5
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ REM Clean up datafiles built with contrib
7878
REM cd contrib
7979
REM for /r %%f in (*.sql) do if exist %%f.in del %%f
8080

81+
REM clean up files copied into contrib\pg_xlogdump
82+
if exist contrib\pg_xlogdump\xlogreader.c del /q contrib\pg_xlogdump\xlogreader.c
83+
for %%f in (contrib\pg_xlogdump\*desc.c) do if not %%f==contrib\pg_xlogdump\rmgrdesc.c del /q %%f
84+
85+
8186
cd %D%
8287

8388
REM Clean up ecpg regression test files

0 commit comments

Comments
 (0)
Please sign in to comment.