diff --git a/tools/vsc.py b/tools/vsc.py index bbb0debc6c..5f2ad4b803 100644 --- a/tools/vsc.py +++ b/tools/vsc.py @@ -30,6 +30,7 @@ import os import json import utils import rtconfig + from utils import _make_path_relative def delete_repeatelist(data): @@ -113,8 +114,47 @@ def GenerateCFiles(env): vsc_space_file.close() return +def GenerateProjectFiles(env): + """ + Generate c_cpp_properties files + """ + if not os.path.exists('.vscode'): + os.mkdir('.vscode') + + project = env['project'] + vsc_file = open('.vscode/project.json', 'w') + if vsc_file: + groups = [] + for group in project: + if len(group['src']) > 0: + item = {} + item['name'] = group['name'] + item['path'] = _make_path_relative(os.getcwd(), group['path']) + item['files'] = [] + + for fn in group['src']: + item['files'].append(str(fn)) + + # append SConscript if exist + if os.path.exists(os.path.join(item['path'], 'SConscript')): + item['files'].append(os.path.join(item['path'], 'SConscript')) + + groups.append(item) + + json_dict = {} + json_dict['RT-Thread'] = env['RTT_ROOT'] + json_dict['Groups'] = groups + + # write groups to project.json + vsc_file.write(json.dumps(json_dict, ensure_ascii=False, indent=4)) + vsc_file.close() + + return + def GenerateVSCode(env): print('Update setting files for VSCode...') + + GenerateProjectFiles(env) GenerateCFiles(env) print('Done!')