Fix MSVC build script's check for obsolete node support functions.
Commit 964d01ae9
was a few bricks shy of a load here: the script
checked whether gen_node_support.pl itself had been updated since it
was last run, but not whether any of its input files had been updated.
Fix that. While here, scrape the list of input files from the
Makefiles rather than having a duplicate copy, as we do for most
other lists of source files.
In passing, improve gen_node_support.pl's error report for an
incorrect file list.
Per gripe from Amit Kapila.
Discussion: https://postgr.es/m/CAA4eK1KQk4vP-3mTAz26h-PRUZaGu8Fc=q-ZKSajsAthH0A15w@mail.gmail.com
This commit is contained in:
parent
71cac850d0
commit
9a9f25e217
|
@ -174,7 +174,7 @@ push @scalar_types, qw(QualCost);
|
|||
|
||||
|
||||
## check that we have the expected number of files on the command line
|
||||
die "wrong number of input files, expected @all_input_files\n"
|
||||
die "wrong number of input files, expected:\n@all_input_files\ngot:\n@ARGV\n"
|
||||
if ($#ARGV != $#all_input_files);
|
||||
|
||||
## read input
|
||||
|
|
|
@ -797,36 +797,30 @@ EOF
|
|||
close($chs);
|
||||
}
|
||||
|
||||
if (IsNewer(
|
||||
'src/backend/nodes/node-support-stamp',
|
||||
'src/backend/nodes/gen_node_support.pl'))
|
||||
{
|
||||
# XXX duplicates node_headers list in src/backend/nodes/Makefile
|
||||
my @node_headers = qw(
|
||||
nodes/nodes.h
|
||||
nodes/primnodes.h
|
||||
nodes/parsenodes.h
|
||||
nodes/pathnodes.h
|
||||
nodes/plannodes.h
|
||||
nodes/execnodes.h
|
||||
access/amapi.h
|
||||
access/sdir.h
|
||||
access/tableam.h
|
||||
access/tsmapi.h
|
||||
commands/event_trigger.h
|
||||
commands/trigger.h
|
||||
executor/tuptable.h
|
||||
foreign/fdwapi.h
|
||||
nodes/extensible.h
|
||||
nodes/lockoptions.h
|
||||
nodes/replnodes.h
|
||||
nodes/supportnodes.h
|
||||
nodes/value.h
|
||||
utils/rel.h
|
||||
);
|
||||
|
||||
my $nmf = Project::read_file('src/backend/nodes/Makefile');
|
||||
$nmf =~ s{\\\r?\n}{}g;
|
||||
$nmf =~ /^node_headers\s*:?=(.*)$/gm
|
||||
|| croak "Could not find node_headers in Makefile\n";
|
||||
my @node_headers = split /\s+/, $1;
|
||||
@node_headers = grep { $_ ne '' } @node_headers;
|
||||
my @node_files = map { "src/include/$_" } @node_headers;
|
||||
|
||||
my $need_node_support = 0;
|
||||
foreach my $nodefile (@node_files)
|
||||
{
|
||||
if (IsNewer('src/backend/nodes/node-support-stamp', $nodefile))
|
||||
{
|
||||
$need_node_support = 1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
$need_node_support = 1
|
||||
if IsNewer(
|
||||
'src/backend/nodes/node-support-stamp',
|
||||
'src/backend/nodes/gen_node_support.pl');
|
||||
|
||||
if ($need_node_support)
|
||||
{
|
||||
system("perl src/backend/nodes/gen_node_support.pl --outdir src/backend/nodes @node_files");
|
||||
open(my $f, '>', 'src/backend/nodes/node-support-stamp')
|
||||
|| confess "Could not touch node-support-stamp";
|
||||
|
|
Loading…
Reference in New Issue