Build snowball DLL for tsearch-in-core.

(Still needs to build the .sql output files, but this handles the C part
of the build)
This commit is contained in:
Magnus Hagander 2007-08-21 15:10:41 +00:00
parent a3bc467eba
commit b913a94d0a
2 changed files with 22 additions and 2 deletions

View File

@ -3,7 +3,7 @@ package Mkvcbuild;
# #
# Package that generates build files for msvc build # Package that generates build files for msvc build
# #
# $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.15 2007/07/23 10:16:54 mha Exp $ # $PostgreSQL: pgsql/src/tools/msvc/Mkvcbuild.pm,v 1.16 2007/08/21 15:10:41 mha Exp $
# #
use Carp; use Carp;
use Win32; use Win32;
@ -70,6 +70,13 @@ sub mkvcbuild
$postgres->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap}); $postgres->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});
$postgres->FullExportDLL('postgres.lib'); $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'); my $plpgsql = $solution->AddProject('plpgsql','dll','PLs','src\pl\plpgsql\src');
$plpgsql->AddFiles('src\pl\plpgsql\src','scan.l','gram.y'); $plpgsql->AddFiles('src\pl\plpgsql\src','scan.l','gram.y');
$plpgsql->AddReference($postgres); $plpgsql->AddReference($postgres);

View File

@ -3,11 +3,12 @@ package Project;
# #
# Package that encapsulates a Visual C++ project file generation # Package that encapsulates a Visual C++ project file generation
# #
# $PostgreSQL: pgsql/src/tools/msvc/Project.pm,v 1.13 2007/07/25 10:51:03 mha Exp $ # $PostgreSQL: pgsql/src/tools/msvc/Project.pm,v 1.14 2007/08/21 15:10:41 mha Exp $
# #
use Carp; use Carp;
use strict; use strict;
use warnings; use warnings;
use File::Basename;
sub new sub new
{ {
@ -96,6 +97,18 @@ sub RemoveFile
confess("Could not find file $filename to remove\n"); 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 sub AddReference
{ {
my $self = shift; my $self = shift;