summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorNicolas Schodet2015-06-17 10:33:53 +0200
committerNicolas Schodet2019-10-07 00:44:50 +0200
commit74c19264c348cbfb06696f9c0b3999dc00109efa (patch)
treeefc12b19177a7fea907c43bcee9e9f1bdb957247 /build
parent2c77cc0058289f1f65b5b53a767f6822d6a8974f (diff)
build/tools: ignore unknown targets in configuration
Diffstat (limited to 'build')
-rwxr-xr-xbuild/tools/config-gen11
-rw-r--r--build/tools/test/a-Config3
2 files changed, 12 insertions, 2 deletions
diff --git a/build/tools/config-gen b/build/tools/config-gen
index be3dac2..6313553 100755
--- a/build/tools/config-gen
+++ b/build/tools/config-gen
@@ -7,7 +7,7 @@ import sys
import re
import os
-def read_config(modules_configs, project_config):
+def read_config(modules_configs, project_config, known_targets):
"""Read configuration definitions and default values from module
configuration files, then merge project configuration."""
parser = ConfigParser.SafeConfigParser()
@@ -20,6 +20,12 @@ def read_config(modules_configs, project_config):
else:
with mcf:
parser.readfp(mcf)
+ # Removed unknown targets.
+ for section in parser.sections():
+ if ':' in section:
+ _, target = section.split(':', 1)
+ if target not in known_targets:
+ parser.remove_section(section)
# Save the list of existing items for later check.
def config_items(parser):
return set('%s:%s' % (section.split(':')[0], item)
@@ -164,7 +170,8 @@ if __name__ == '__main__':
try:
targets, subtargets = parse_targets(options.targets)
- config = read_config(modules_configs, options.project_config)
+ config = read_config(modules_configs, options.project_config,
+ subtargets.keys())
check_config(config, targets, subtargets)
if options.c_header_template:
write_headers(options.c_header_template, config)
diff --git a/build/tools/test/a-Config b/build/tools/test/a-Config
index ed66ccc..f42b75c 100644
--- a/build/tools/test/a-Config
+++ b/build/tools/test/a-Config
@@ -1,3 +1,6 @@
[a]
foo = 1
bar =
+
+[a:blah]
+foo = 2