scripts/package-metadata.pl: honour DEFAULT_VARIANT

So far, package-metadata.pl always considered the first provider of a virtual
package to be the default variant which might deviate from what buildroot
considers to be the default.

Change the Kconfig dependency / select code generation for virtual package
providers to consider the DEFAULT_VARIANT to be the primary provider and only
fall back to the first provider if no default variant was explicitely tagged.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
lede-17.01
Jo-Philipp Wich 2016-11-02 01:45:06 +01:00
parent 5e0441aaf0
commit 12d15fa8a5
1 changed files with 15 additions and 2 deletions

View File

@ -176,8 +176,21 @@ sub mconf_depends {
next if $package{$depend} and $package{$depend}->{buildonly};
if ($flags =~ /\+/) {
if ($vdep = $package{$depend}->{vdepends}) {
my @vdeps = @$vdep;
$depend = shift @vdeps;
my @vdeps;
$depend = undef;
foreach my $v (@$vdep) {
if ($package{$v} && $package{$v}->{variant_default}) {
$depend = $v;
} else {
push @vdeps, $v;
}
}
if (!$depend) {
$depend = shift @vdeps;
}
if (@vdeps > 1) {
$condition = ($condition ? "$condition && " : '') . '!('.join("||", map { "PACKAGE_".$_ } @vdeps).')';
} elsif (@vdeps > 0) {