summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2007-08-21 15:10:41 +0000
committerMagnus Hagander2007-08-21 15:10:41 +0000
commit5e820dcf147e2e8e367753473b649c9e61aab60b (patch)
treef1061b512f7592685ecb24f7bc6f181120b9f48f
parent8000a5acf7ffbeac3c83f4f6b5729444e8d0f6dc (diff)
Build snowball DLL for tsearch-in-core.
(Still needs to build the .sql output files, but this handles the C part of the build)
-rw-r--r--src/tools/msvc/Mkvcbuild.pm7
-rw-r--r--src/tools/msvc/Project.pm13
2 files changed, 20 insertions, 0 deletions
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index ca2c590653..b7feea8f73 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -70,6 +70,13 @@ sub mkvcbuild
$postgres->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});
$postgres->FullExportDLL('postgres.lib');
+ my $snowball = $solution->AddProject('dict_snowball','dll','','src\backend\snowball');
+ $snowball->RelocateFiles('src\backend\snowball\libstemmer', sub {
+ return shift !~ /dict_snowball.c$/;
+ });
+ $snowball->AddIncludeDir('src\include\snowball');
+ $snowball->AddReference($postgres);
+
my $plpgsql = $solution->AddProject('plpgsql','dll','PLs','src\pl\plpgsql\src');
$plpgsql->AddFiles('src\pl\plpgsql\src','scan.l','gram.y');
$plpgsql->AddReference($postgres);
diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm
index 23a64149b1..a81c3a27a3 100644
--- a/src/tools/msvc/Project.pm
+++ b/src/tools/msvc/Project.pm
@@ -8,6 +8,7 @@ package Project;
use Carp;
use strict;
use warnings;
+use File::Basename;
sub new
{
@@ -96,6 +97,18 @@ sub RemoveFile
confess("Could not find file $filename to remove\n");
}
+sub RelocateFiles
+{
+ my ($self, $targetdir, $proc) = @_;
+ foreach my $f (keys %{$self->{files}}) {
+ my $r = &$proc($f);
+ if ($r) {
+ $self->RemoveFile($f);
+ $self->AddFile($targetdir . '\\' . basename($f));
+ }
+ }
+}
+
sub AddReference
{
my $self = shift;