Ver código fonte

[tools] add function of auto-update rtconfig.h

Meco Man 3 anos atrás
pai
commit
eac383f97b
1 arquivos alterados com 41 adições e 28 exclusões
  1. 41 28
      tools/buildbot.py

+ 41 - 28
tools/buildbot.py

@@ -12,6 +12,46 @@ if len(sys.argv) != 2:
     usage()
     sys.exit(0)
 
+def update_project_file(project_dir):
+    if os.path.isfile(os.path.join(project_dir, 'template.Uv2')):
+        print('prepare MDK3 project file on ' + project_dir)
+        command = ' --target=mdk -s'
+        os.system('scons --directory=' + project_dir + command + ' > 1.txt')
+
+    if os.path.isfile(os.path.join(project_dir, 'template.uvproj')):
+        print('prepare MDK4 project file on ' + project_dir)
+        command = ' --target=mdk4 -s'
+        os.system('scons --directory=' + project_dir + command + ' > 1.txt')
+
+    if os.path.isfile(os.path.join(project_dir, 'template.uvprojx')):
+        print('prepare MDK5 project file on ' + project_dir)
+        command = ' --target=mdk5 -s'
+        os.system('scons --directory=' + project_dir + command + ' > 1.txt')
+
+    if os.path.isfile(os.path.join(project_dir, 'template.ewp')):
+        print('prepare IAR project file on ' + project_dir)
+        command = ' --target=iar -s'
+        os.system('scons --directory=' + project_dir + command + ' > 1.txt')
+
+
+def update_all_project_files(root_path):
+    # current path is dir
+    if os.path.isdir(root_path):
+        projects = os.listdir(root_path)
+        # is a project path?
+        if "SConscript" in projects:
+            print('new bsp path {}'.format(root_path))
+            try:
+                os.system('scons --pyconfig-silent -C {0}'.format(root_path)) # update rtconfig.h and .config
+                update_project_file(root_path)
+            except Exception as e:
+                print("error message: {}".format(e))
+                sys.exit(-1)
+        else:
+            for i in projects:
+                new_root_path = os.path.join(root_path, i)
+                update_all_project_files(new_root_path)
+
 # get command options
 command = ''
 if sys.argv[1] == 'all':
@@ -19,34 +59,7 @@ if sys.argv[1] == 'all':
 elif sys.argv[1] == 'clean':
     command = ' -c'
 elif sys.argv[1] == 'project':
-
-    projects = os.listdir(BSP_ROOT)
-    for item in projects:
-        project_dir = os.path.join(BSP_ROOT, item)
-
-        if os.path.isfile(os.path.join(project_dir, 'template.Uv2')):
-            print('prepare MDK3 project file on ' + project_dir)
-            command = ' --target=mdk -s'
-
-            os.system('scons --directory=' + project_dir + command)
-
-        if os.path.isfile(os.path.join(project_dir, 'template.uvproj')):
-            print('prepare MDK4 project file on ' + project_dir)
-            command = ' --target=mdk4 -s'
-
-            os.system('scons --directory=' + project_dir + command)
-
-        if os.path.isfile(os.path.join(project_dir, 'template.uvprojx')):
-            print('prepare MDK5 project file on ' + project_dir)
-            command = ' --target=mdk5 -s'
-
-            os.system('scons --directory=' + project_dir + command)
-
-        if os.path.isfile(os.path.join(project_dir, 'template.ewp')):
-            print('prepare IAR project file on ' + project_dir)
-            command = ' --target=iar -s'
-
-            os.system('scons --directory=' + project_dir + command)
+    update_all_project_files(BSP_ROOT)
 
     sys.exit(0)
 else: