aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/metadata.pl
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-10-17 22:11:21 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-10-17 22:11:21 +0000
commitb57af5044a8f3764b1f63504525be6e843b36ccc (patch)
treec7c41c04b9c3f7c75ccdc39eab64e28f5cf2bce2 /scripts/metadata.pl
parent5abfaa17c9b892ab0512f42f330fb669ef82ac11 (diff)
downloadmaster-187ad058-b57af5044a8f3764b1f63504525be6e843b36ccc.tar.gz
master-187ad058-b57af5044a8f3764b1f63504525be6e843b36ccc.tar.bz2
master-187ad058-b57af5044a8f3764b1f63504525be6e843b36ccc.zip
add experimental support for a new menuconfig submenu "Package features".
allows selection between multiple packages providing the same feature, which affects dependencies of other packages. will be used e.g. for choosing between DirectFB and X.org for libraries like GTK2 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18056 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'scripts/metadata.pl')
-rwxr-xr-xscripts/metadata.pl25
1 files changed, 25 insertions, 0 deletions
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index 8f146c3b00..2da8851171 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -533,6 +533,30 @@ sub print_package_config_category($) {
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;
@@ -549,6 +573,7 @@ sub gen_package_config() {
EOF
}
}
+ print_package_features();
print_package_config_category 'Base system';
foreach my $cat (keys %category) {
print_package_config_category $cat;