git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ee84009)
This patch changes the installscript for vcbuild to actually parse the
Fri, 2 Feb 2007 16:25:34 +0000 (16:25 +0000)
Fri, 2 Feb 2007 16:25:34 +0000 (16:25 +0000)
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.


diff --git a/src/tools/msvc/install.pl b/src/tools/msvc/install.pl
index c00b730871ca29dd264eea3f817c6cdbf105a5b2..fb10bd8f42afd81a468bcc018b60973bdfc22c48 100755 (executable)
--- a/src/tools/msvc/install.pl
+++ b/src/tools/msvc/install.pl
@@ -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;
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /