Quellcode durchsuchen

[tools] add silent mode to guiconfig.

armink vor 5 Jahren
Ursprung
Commit
82662d2524
2 geänderte Dateien mit 72 neuen und 0 gelöschten Zeilen
  1. 43 0
      tools/defconfig.py
  2. 29 0
      tools/menuconfig.py

+ 43 - 0
tools/defconfig.py

@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2019, Ulf Magnusson
+# SPDX-License-Identifier: ISC
+
+"""
+Reads a specified configuration file, then writes a new configuration file.
+This can be used to initialize the configuration from e.g. an arch-specific
+configuration file. This input configuration file would usually be a minimal
+configuration file, as generated by e.g. savedefconfig.
+
+The default output filename is '.config'. A different filename can be passed in
+the KCONFIG_CONFIG environment variable.
+"""
+import argparse
+
+import kconfiglib
+
+
+def main():
+    parser = argparse.ArgumentParser(
+        formatter_class=argparse.RawDescriptionHelpFormatter,
+        description=__doc__)
+
+    parser.add_argument(
+        "--kconfig",
+        default="Kconfig",
+        help="Base Kconfig file (default: Kconfig)")
+
+    parser.add_argument(
+        "config",
+        metavar="CONFIGURATION",
+        help="Input configuration file")
+
+    args = parser.parse_args()
+
+    kconf = kconfiglib.Kconfig(args.kconfig)
+    print(kconf.load_config(args.config))
+    print(kconf.write_config())
+
+
+if __name__ == "__main__":
+    main()

+ 29 - 0
tools/menuconfig.py

@@ -282,8 +282,37 @@ def guiconfig(RTT_ROOT):
 
     fn = '.config'
 
+    if os.path.isfile(fn):
+        mtime = os.path.getmtime(fn)
+    else:
+        mtime = -1
+
     sys.argv = ['guiconfig', 'Kconfig'];
     pyguiconfig._main()
 
+    if os.path.isfile(fn):
+        mtime2 = os.path.getmtime(fn)
+    else:
+        mtime2 = -1
+
+    # make rtconfig.h
+    if mtime != mtime2:
+        mk_rtconfig(fn)
+
+
+# guiconfig for windows and linux
+def guiconfig_silent(RTT_ROOT):
+    import defconfig
+
+    touch_env()
+    env_dir = get_env_dir()
+
+    os.environ['PKGS_ROOT'] = os.path.join(env_dir, 'packages')
+
+    fn = '.config'
+
+    sys.argv = ['defconfig', '--kconfig', 'Kconfig', '.config']
+    defconfig.main()
+
     # silent mode, force to make rtconfig.h
     mk_rtconfig(fn)