aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-10-23 03:58:33 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-10-23 03:58:33 +0200
commit6673ba53c17bb1ab99a1e7629156d99452213747 (patch)
tree70cf515693ed51c5537dc5fb178e5d938862bd35 /tools
parentAdblockRule constructor (diff)
downloadsmolbote-6673ba53c17bb1ab99a1e7629156d99452213747.tar.xz
Initial meson build files
Diffstat (limited to 'tools')
-rwxr-xr-xtools/config.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/tools/config.py b/tools/config.py
index 22defdd..96c4576 100755
--- a/tools/config.py
+++ b/tools/config.py
@@ -50,15 +50,34 @@ def main(args):
if i is not None:
print(i)
+def writeItem(node, gen):
+ while node:
+ if isinstance(node.item, kconfiglib.Symbol):
+ gen.write("#define CONFIG_{0} \"{1}\"\n".format(node.item.name, node.item.str_value))
+
+ if node.list:
+ writeItem(node.list, gen)
+
+ node = node.next
+
+def generate(args):
+ kconf = kconfiglib.Kconfig(args.kconfig)
+ if args.dotconfig is not None:
+ kconf.load_config(args.dotconfig)
+
+ with open(args.generate, "wt") as gen:
+ gen.write("// This is an auto-generated file, do not edit.\n")
+ writeItem(kconf.top_node, gen)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
-
parser.add_argument("--kconfig", metavar="Kconfig", nargs="?", default="Kconfig", help="Top-level Kconfig file (default: Kconfig)")
-
parser.add_argument("--dotconfig", metavar="dotconfig", nargs="?", help=".config")
-
+ parser.add_argument("--generate", metavar="config_header", nargs="?", help="Generate config file")
parser.add_argument("setting", metavar="CONFIG_KEY", nargs="?", help="Top-level Kconfig file (default: Kconfig)")
args = parser.parse_args()
- main(args)
+ if args.generate is not None:
+ generate(args)
+ else:
+ main(args)