generator_incs => $unified_info{includes}->{$script},
generator_deps => $unified_info{depends}->{$script},
deps => $unified_info{depends}->{$src},
- incs => $unified_info{includes}->{$obj},
+ incs => [ @{$unified_info{includes}->{$obj}},
+ @{$unified_info{includes}->{$bin}} ],
%opts);
foreach (@{$unified_info{depends}->{$src}}) {
dogenerate($_, $obj, $bin, %opts);
product => $bin,
srcs => $unified_info{sources}->{$obj},
deps => $unified_info{depends}->{$obj},
- incs => $unified_info{includes}->{$obj},
+ incs => [ @{$unified_info{includes}->{$obj}},
+ @{$unified_info{includes}->{$bin}} ],
%opts);
foreach ((@{$unified_info{sources}->{$obj}},
@{$unified_info{depends}->{$obj}})) {
}
}
- # Trickle down includes placed on libraries, engines and programs to
- # their sources (i.e. object files)
- foreach my $dest (keys %{$unified_info{engines}},
- keys %{$unified_info{libraries}},
- keys %{$unified_info{programs}}) {
- foreach my $k (("source", "build")) {
- next unless defined($unified_info{includes}->{$dest}->{$k});
- my @incs = reverse @{$unified_info{includes}->{$dest}->{$k}};
- foreach my $obj (grep /\.o$/,
- (keys %{$unified_info{sources}->{$dest}},
- keys %{$unified_info{shared_sources}->{$dest}})) {
- foreach my $inc (@incs) {
- unshift @{$unified_info{includes}->{$obj}->{$k}}, $inc
- unless grep { $_ eq $inc } @{$unified_info{includes}->{$obj}->{$k}};
- }
- }
- }
- delete $unified_info{includes}->{$dest};
- }
-
### Make unified_info a bit more efficient
# One level structures
foreach (("programs", "libraries", "engines", "scripts", "extra", "overrides")) {
push @{$unified_info{includes}->{$dest}}, $inc
unless grep { $_ eq $inc } @{$unified_info{includes}->{$dest}};
}
- } else {
+ } elsif (defined($unified_info{includes}->{$dest}->{source})) {
$unified_info{includes}->{$dest} =
[ @{$unified_info{includes}->{$dest}->{source}} ];
+ } else {
+ delete $unified_info{includes}->{$dest};
}
}
}