diff options
author | John Crispin <john@openwrt.org> | 2015-02-09 12:09:43 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2015-02-09 12:09:43 +0000 |
commit | e2684c218d0bb5f132eb1c9b80cdafafd828fe21 (patch) | |
tree | 4c77faf6b78c540434dc0edf476bcdfa2e050cf2 | |
parent | b7cf4cc61300e6e6023ae6a494991e5c57f90656 (diff) | |
download | upstream-e2684c218d0bb5f132eb1c9b80cdafafd828fe21.tar.gz upstream-e2684c218d0bb5f132eb1c9b80cdafafd828fe21.tar.bz2 upstream-e2684c218d0bb5f132eb1c9b80cdafafd828fe21.zip |
build: propagate override information to .config file
With this change, override information is now parsed from the metadata
and put in the %packages hash. A new hash - %overrides - is created and
exported, to be used during the .config-package.in generation.
If an override is detected, a new option CONFIG_OVERRIDE_PKGS will be
created in the .config, and will contain a space-separated list of all
the overridden packages.
Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com>
SVN-Revision: 44336
-rwxr-xr-x | scripts/metadata.pl | 8 | ||||
-rw-r--r-- | scripts/metadata.pm | 11 |
2 files changed, 18 insertions, 1 deletions
diff --git a/scripts/metadata.pl b/scripts/metadata.pl index ea437f5268..abf8248d35 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -679,6 +679,13 @@ EOF print "endmenu\n\n"; } +sub print_package_overrides() { + keys %overrides > 0 or return; + print "\tconfig OVERRIDE_PKGS\n"; + print "\t\tstring\n"; + print "\t\tdefault \"".join(" ", keys %overrides)."\"\n\n"; +} + sub gen_package_config() { parse_package_metadata($ARGV[0]) or exit 1; print "menuconfig IMAGEOPT\n\tbool \"Image configuration\"\n\tdefault n\n"; @@ -704,6 +711,7 @@ EOF foreach my $cat (sort {uc($a) cmp uc($b)} keys %category) { print_package_config_category $cat; } + print_package_overrides(); } sub get_conditional_dep($$) { diff --git a/scripts/metadata.pm b/scripts/metadata.pm index fc8657322e..4bf70bbbde 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -2,7 +2,7 @@ package metadata; use base 'Exporter'; use strict; use warnings; -our @EXPORT = qw(%package %srcpackage %category %subdir %preconfig %features clear_packages parse_package_metadata get_multiline); +our @EXPORT = qw(%package %srcpackage %category %subdir %preconfig %features %overrides clear_packages parse_package_metadata get_multiline); our %package; our %preconfig; @@ -10,6 +10,7 @@ our %srcpackage; our %category; our %subdir; our %features; +our %overrides; sub get_multiline { my $fh = shift; @@ -30,6 +31,7 @@ sub clear_packages() { %srcpackage = (); %category = (); %features = (); + %overrides = (); } sub parse_package_metadata($) { @@ -40,6 +42,7 @@ sub parse_package_metadata($) { my $preconfig; my $subdir; my $src; + my $override; open FILE, "<$file" or do { warn "Cannot open '$file': $!\n"; @@ -54,8 +57,13 @@ sub parse_package_metadata($) { $subdir =~ s/^package\///; $subdir{$src} = $subdir; $srcpackage{$src} = []; + $override = ""; undef $pkg; }; + /^Override: \s*(.+?)\s*$/ and do { + $override = $1; + $overrides{$src} = 1; + }; next unless $src; /^Package:\s*(.+?)\s*$/ and do { undef $feature; @@ -70,6 +78,7 @@ sub parse_package_metadata($) { $pkg->{buildtypes} = []; $pkg->{subdir} = $subdir; $pkg->{tristate} = 1; + $pkg->{override} = $override; $package{$1} = $pkg; push @{$srcpackage{$src}}, $pkg; }; |