add experimental support for a new menuconfig submenu "Package features". allows...
[openwrt/openwrt.git] / scripts / metadata.pl
index 8f146c3b005d7bb68762af171e3ddc0ef3810ab3..2da8851171fa43c4bb6aaf7ddec30c92ae311726 100755 (executable)
@@ -533,6 +533,30 @@ sub print_package_config_category($) {
        undef $category{$cat};
 }
 
        undef $category{$cat};
 }
 
+sub print_package_features() {
+       keys %features > 0 or return;
+       print "menu \"Package features\"\n";
+       foreach my $n (keys %features) {
+               my @features = sort { $b->{priority} <=> $a->{priority} or $a->{title} cmp $b->{title} } @{$features{$n}};
+               print <<EOF;
+choice
+       prompt "$features[0]->{target_title}"
+       default FEATURE_$features[0]->{name}
+EOF
+
+               foreach my $feature (@features) {
+                       print <<EOF;
+       config FEATURE_$feature->{name}
+               bool "$feature->{title}"
+               help
+$feature->{description}
+EOF
+               }
+               print "endchoice\n"
+       }
+       print "endmenu\n\n";
+}
+
 sub gen_package_config() {
        parse_package_metadata($ARGV[0]) or exit 1;
        print "menuconfig UCI_PRECONFIG\n\tbool \"Image configuration\"\n" if %preconfig;
 sub gen_package_config() {
        parse_package_metadata($ARGV[0]) or exit 1;
        print "menuconfig UCI_PRECONFIG\n\tbool \"Image configuration\"\n" if %preconfig;
@@ -549,6 +573,7 @@ sub gen_package_config() {
 EOF
                }
        }
 EOF
                }
        }
+       print_package_features();
        print_package_config_category 'Base system';
        foreach my $cat (keys %category) {
                print_package_config_category $cat;
        print_package_config_category 'Base system';
        foreach my $cat (keys %category) {
                print_package_config_category $cat;