From f08d1f503408b9eab9ce440828639915b7db7520 Mon Sep 17 00:00:00 2001 From: bernard Date: Thu, 2 Nov 2017 16:57:17 +0800 Subject: [PATCH] [Tools] Add genconfig command in scons. --- tools/building.py | 10 ++++++++++ tools/genconf.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 tools/genconf.py diff --git a/tools/building.py b/tools/building.py index f5cbd31617..730ae5bc67 100644 --- a/tools/building.py +++ b/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', diff --git a/tools/genconf.py b/tools/genconf.py new file mode 100644 index 0000000000..de8681e1f8 --- /dev/null +++ b/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.") -- GitLab