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.
This commit is contained in:
parent
ee84009cb0
commit
b587bafef1
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user