diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index b09872e018..085f48f984 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -830,36 +830,48 @@ 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 + # 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 @node_files = map { "src/include/$_" } @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";