mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-12 06:57:57 +04:00
scripts/package-metadata.pl: list every build variant only once
If several packages of a source use the same build variant, the variant is added to the list of variants once for each selected package, and the variant is built as often, one after the other. With all packages selected, hostapd builds 4 variants twice, and f2fs-tools its 2 variants four times each. Add each variant once, with the condition of all packages that use it. Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
1 parent
4547335cc7
commit
d0379f4a5a
1 file changed
+8
-1
@@ -446,6 +446,8 @@ sub gen_package_mk() {
|
||||
foreach my $srcname (sort {uc($a) cmp uc($b)} keys %srcpackage) {
|
||||
my $src = $srcpackage{$srcname};
|
||||
my $variant_default;
|
||||
my @variants;
|
||||
my %variant_config;
|
||||
my %deplines = ('' => {});
|
||||
|
||||
foreach my $pkg (@{$src->{packages}}) {
|
||||
@@ -495,10 +497,15 @@ sub gen_package_mk() {
|
||||
if (!defined($variant_default) or $pkg->{variant_default}) {
|
||||
$variant_default = $pkg->{variant};
|
||||
}
|
||||
printf "\$(curdir)/%s/variants += \$(if %s,%s)\n", $src->{path}, $config, $pkg->{variant};
|
||||
push @variants, $pkg->{variant} unless defined $variant_config{$pkg->{variant}};
|
||||
$variant_config{$pkg->{variant}} .= $config;
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $variant (@variants) {
|
||||
printf "\$(curdir)/%s/variants += \$(if %s,%s)\n", $src->{path}, $variant_config{$variant}, $variant;
|
||||
}
|
||||
|
||||
if (defined($variant_default)) {
|
||||
printf "\$(curdir)/%s/default-variant := %s\n", $src->{path}, $variant_default;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user