ソースを参照

[Tools] Add genconfig command in scons.

bernard 7 年 前
コミット
f08d1f5034
2 ファイル変更42 行追加0 行削除
  1. 10 0
      tools/building.py
  2. 32 0
      tools/genconf.py

+ 10 - 0
tools/building.py

@@ -258,6 +258,16 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
         and rtconfig.PLATFORM == 'gcc':
         AddDepend('RT_USING_MINILIBC')
 
+    AddOption('--genconfig', 
+                dest = 'genconfig',
+                action = 'store_true',
+                default = False, 
+                help = 'Generate .config from rtconfig.h')
+    if GetOption('genconfig'):
+        from genconf import genconfig
+        genconfig()
+        exit(0)
+
     # add comstr option
     AddOption('--verbose',
                 dest='verbose',

+ 32 - 0
tools/genconf.py

@@ -0,0 +1,32 @@
+import os
+
+def genconfig() :
+    from SCons.Script import SCons
+
+    PreProcessor = SCons.cpp.PreProcessor()
+
+    try:
+        f = file('rtconfig.h', 'r')
+        contents = f.read()
+        f.close()
+    except :
+        print("Open rtconfig.h file failed.")
+
+    PreProcessor.process_contents(contents)
+    options = PreProcessor.cpp_namespace
+
+    try:
+        f = file('.config', 'w')
+        for (opt, value) in options.items():
+            if type(value) == type(1):
+                f.write("CONFIG_%s=%d\n" % (opt, value))
+
+            if type(value) == type('') and value == '':
+                f.write("CONFIG_%s=y\n" % opt)
+            elif type(value) == type('str'):
+                f.write("CONFIG_%s=%s\n" % (opt, value))
+
+        print("Generate .config done!")
+        f.close()
+    except:
+        print("Generate .config file failed.")