tools/cmake: fix parallel build with Make 4.2+
[openwrt/openwrt.git] / scripts / metadata.pm
index 1891c0a6ee88353dd7225707c8e0ba62a1efa360..c7f8532b54e36e93beac06096f57f046694df5be 100644 (file)
@@ -84,15 +84,19 @@ sub parse_target_metadata($) {
                        $profile = {
                                id => $1,
                                name => $1,
+                               priority => 999,
                                packages => []
                        };
+                       $1 =~ /^DEVICE_/ and $target->{has_devices} = 1;
                        push @{$target->{profiles}}, $profile;
                };
                /^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1;
+               /^Target-Profile-Priority:\s*(\d+)\s*$/ and do {
+                       $profile->{priority} = $1;
+                       $target->{sort} = 1;
+               };
                /^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ];
                /^Target-Profile-Description:\s*(.*)\s*/ and $profile->{desc} = get_multiline(*FILE);
-               /^Target-Profile-Config:/ and $profile->{config} = get_multiline(*FILE, "\t");
-               /^Target-Profile-Kconfig:/ and $profile->{kconfig} = 1;
        }
        close FILE;
        foreach my $target (@target) {
@@ -107,6 +111,11 @@ sub parse_target_metadata($) {
                                packages => []
                        }
                ];
+
+               $target->{sort} and @{$target->{profiles}} = sort {
+                       $a->{priority} <=> $b->{priority} or
+                       $a->{name} cmp $b->{name};
+               } @{$target->{profiles}};
        }
        return @target;
 }