Skip to content
Snippets Groups Projects
Commit b587bafe authored by Neil Conway's avatar Neil Conway
Browse files

This patch changes the installscript for vcbuild to actually parse the

generated solution files for what to install, instead of blindly copying
everything as it previously did. With the previous quick-n-dirty
version, it would copy old DLLs if you reconfigured in a way that didn't
include subprojects like a PL for example.

Magnus Hagander.
parent ee84009c
No related branches found
No related tags found
No related merge requests found
......@@ -21,8 +21,7 @@ print "Installing for $conf\n";
EnsureDirectories ('bin','lib','share','share/timezonesets');
CopySetOfFiles('programs', "$conf\\*.exe", $target . '/bin/');
CopySetOfFiles('libraries', "$conf\\*.dll", $target . '/lib/');
CopySolutionOutput($conf, $target);
copy($target . '/lib/libpq.dll', $target . '/bin/libpq.dll');
CopySetOfFiles('config files', "*.sample", $target . '/share/');
CopySetOfFiles('timezone names', 'src\timezone\tznames\*.txt', $target . '/share/timezonesets/');
......@@ -72,12 +71,48 @@ sub CopySetOfFiles {
chomp;
my $tgt = $target . basename($_);
print ".";
copy($_, $tgt) || croak "Could not copy $_\n";
copy($_, $tgt) || croak "Could not copy $_: $!\n";
}
close($D);
print "\n";
}
sub CopySolutionOutput {
my $conf = shift;
my $target = shift;
my $rem = qr{Project\("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"\) = "([^"]+)"};
my $sln = read_file("pgsql.sln") || croak "Could not open pgsql.sln\n";
print "Copying build output files...";
while ($sln =~ $rem) {
my $pf = $1;
my $dir;
my $ext;
$sln =~ s/$rem//;
my $proj = read_file("$pf.vcproj") || croak "Could not open $pf.vcproj\n";
if ($proj !~ qr{ConfigurationType="([^"]+)"}) {
croak "Could not parse $pf.vcproj\n";
}
if ($1 == 1) {
$dir = "bin";
$ext = "exe";
}
elsif ($1 == 2) {
$dir = "lib";
$ext = "dll";
}
else {
# Static lib, such as libpgport, only used internally during build, don't install
next;
}
copy("$conf\\$pf\\$pf.$ext","$target\\$dir\\$pf.$ext") || croak "Could not copy $pf.$ext\n";
print ".";
}
print "\n";
}
sub GenerateConversionScript {
my $sql = "";
my $F;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment