scripts: target-metadata don't add PROFILES twice
authorPaul Spooren <mail@aparcar.org>
Wed, 15 Apr 2020 00:49:54 +0000 (14:49 -1000)
committerPaul Spooren <mail@aparcar.org>
Fri, 15 Jan 2021 08:42:21 +0000 (22:42 -1000)
Since 4ee3cf2b5a profiles with alternative vendor names may appear
multiple times in `tmp/.targetinfo` or `.targetinfo` (for
ImageBuilders).

The `target-metadata.pl` script adds these profiles then twice to
`PROFILE_NAMES` and the ImageBuilder show the profile twice when running
`make info`.

This patch removes duplicate profile IDs and only adds them once to
`.profiles.mk`.

Signed-off-by: Paul Spooren <mail@aparcar.org>
scripts/target-metadata.pl

index bf6413d315f927ed07a6cd3cf19f3f554202d07c..78f77b16d5f8d7076de75e177cb705cccb592cf7 100755 (executable)
@@ -429,7 +429,8 @@ sub gen_profile_mk() {
        my @targets = parse_target_metadata($file);
        foreach my $cur (@targets) {
                next unless $cur->{id} eq $target;
-               print "PROFILE_NAMES = ".join(" ", map { $_->{id} } @{$cur->{profiles}})."\n";
+               my @profile_ids_unique =  do { my %seen; grep { !$seen{$_}++} map { $_->{id} } @{$cur->{profiles}}};
+               print "PROFILE_NAMES = ".join(" ", @profile_ids_unique)."\n";
                foreach my $profile (@{$cur->{profiles}}) {
                        print $profile->{id}.'_NAME:='.$profile->{name}."\n";
                        print $profile->{id}.'_HAS_IMAGE_METADATA:='.$profile->{has_image_metadata}."\n";