diff --git a/tools/buildbot.py b/tools/buildbot.py index bcce3449ec..02f6e37d4f 100644 --- a/tools/buildbot.py +++ b/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: