@@ -474,8 +474,10 @@ sub mkvcbuild
474
474
push @contrib_excludes , ' uuid-ossp' ;
475
475
}
476
476
477
- # Pgcrypto makefile too complex to parse....
478
- my $pgcrypto = $solution -> AddProject(' pgcrypto' , ' dll' , ' crypto' );
477
+ # AddProject() does not recognize the constructs used to populate OBJS in
478
+ # the pgcrypto Makefile, so it will discover no files.
479
+ my $pgcrypto =
480
+ $solution -> AddProject(' pgcrypto' , ' dll' , ' crypto' , ' contrib\\ pgcrypto' );
479
481
$pgcrypto -> AddFiles(
480
482
' contrib\pgcrypto' , ' pgcrypto.c' ,
481
483
' px.c' , ' px-hmac.c' ,
@@ -527,18 +529,9 @@ sub mkvcbuild
527
529
|| die ' Could not match in conversion makefile' . " \n " ;
528
530
foreach my $sub (split /\s +/, $1 )
529
531
{
530
- my $mf = Project::read_file(
531
- ' src\backend\utils\mb\conversion_procs\\ ' . $sub . ' \Makefile' );
532
- my $p = $solution -> AddProject($sub , ' dll' , ' conversion procs' );
533
- $p -> AddFile(' src\backend\utils\mb\conversion_procs\\ '
534
- . $sub . ' \\ '
535
- . $sub
536
- . ' .c' );
537
- if ($mf =~ m { ^SRCS\s *\+ =\s *(.*)$} m )
538
- {
539
- $p -> AddFile(
540
- ' src\backend\utils\mb\conversion_procs\\ ' . $sub . ' \\ ' . $1 );
541
- }
532
+ my $dir = ' src\backend\utils\mb\conversion_procs\\ ' . $sub ;
533
+ my $p = $solution -> AddProject($sub , ' dll' , ' conversion procs' , $dir );
534
+ $p -> AddFile(" $dir \\ $sub .c" ); # implicit source file
542
535
$p -> AddReference($postgres );
543
536
}
544
537
@@ -646,62 +639,26 @@ sub AddContrib
646
639
if ($mf =~ / ^MODULE_big\s *=\s *(.*)$ /mg )
647
640
{
648
641
my $dn = $1 ;
649
- $mf =~ s {\\\s *[\r\n ]+} {} mg ;
650
- my $proj = $solution -> AddProject($dn , ' dll' , ' contrib' );
651
- $mf =~ / ^OBJS\s *=\s *(.*)$ /gm
652
- || croak " Could not find objects in MODULE_big for $n \n " ;
653
- my $objs = $1 ;
654
- while ($objs =~ / \b ([\w -]+\. o)\b /g )
655
- {
656
- my $o = $1 ;
657
- $o =~ s /\. o$/ .c/ ;
658
- $proj -> AddFile(' contrib\\ ' . $n . ' \\ ' . $o );
659
- }
642
+ my $proj =
643
+ $solution -> AddProject($dn , ' dll' , ' contrib' , ' contrib\\ ' . $n );
660
644
$proj -> AddReference($postgres );
661
- if ($mf =~ / ^SUBDIRS\s *:?=\s *(.*)$ /mg )
662
- {
663
- foreach my $d (split /\s +/, $1 )
664
- {
665
- my $mf2 = Project::read_file(
666
- ' contrib\\ ' . $n . ' \\ ' . $d . ' \Makefile' );
667
- $mf2 =~ s {\\\s *[\r\n ]+} {} mg ;
668
- $mf2 =~ / ^SUBOBJS\s *=\s *(.*)$ /gm
669
- || croak
670
- " Could not find objects in MODULE_big for $n , subdir $d \n " ;
671
- $objs = $1 ;
672
- while ($objs =~ / \b ([\w -]+\. o)\b /g )
673
- {
674
- my $o = $1 ;
675
- $o =~ s /\. o$/ .c/ ;
676
- $proj -> AddFile(' contrib\\ ' . $n . ' \\ ' . $d . ' \\ ' . $o );
677
- }
678
- }
679
- }
680
645
AdjustContribProj($proj );
681
646
}
682
647
elsif ($mf =~ / ^MODULES\s *=\s *(.*)$ /mg )
683
648
{
684
649
foreach my $mod (split /\s +/, $1 )
685
650
{
686
- my $proj = $solution -> AddProject($mod , ' dll' , ' contrib' );
651
+ my $proj =
652
+ $solution -> AddProject($mod , ' dll' , ' contrib' , ' contrib\\ ' . $n );
687
653
$proj -> AddFile(' contrib\\ ' . $n . ' \\ ' . $mod . ' .c' );
688
654
$proj -> AddReference($postgres );
689
655
AdjustContribProj($proj );
690
656
}
691
657
}
692
658
elsif ($mf =~ / ^PROGRAM\s *=\s *(.*)$ /mg )
693
659
{
694
- my $proj = $solution -> AddProject($1 , ' exe' , ' contrib' );
695
- $mf =~ s {\\\s *[\r\n ]+} {} mg ;
696
- $mf =~ / ^OBJS\s *=\s *(.*)$ /gm
697
- || croak " Could not find objects in PROGRAM for $n \n " ;
698
- my $objs = $1 ;
699
- while ($objs =~ / \b ([\w -]+\. o)\b /g )
700
- {
701
- my $o = $1 ;
702
- $o =~ s /\. o$/ .c/ ;
703
- $proj -> AddFile(' contrib\\ ' . $n . ' \\ ' . $o );
704
- }
660
+ my $proj =
661
+ $solution -> AddProject($1 , ' exe' , ' contrib' , ' contrib\\ ' . $n );
705
662
AdjustContribProj($proj );
706
663
}
707
664
else
@@ -717,6 +674,7 @@ sub GenerateContribSqlFiles
717
674
{
718
675
my $n = shift ;
719
676
my $mf = shift ;
677
+ $mf =~ s {\\\s *[\r\n ]+} {} mg ;
720
678
if ($mf =~ / ^DATA_built\s *=\s *(.*)$ /mg )
721
679
{
722
680
my $l = $1 ;
0 commit comments