diff options
| author | Bernard Xiong <[email protected]> | 2024-11-11 09:14:53 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-11-11 09:14:53 +0800 |
| commit | f8ea6c652744b71aabfa3016792501f5c43b958b (patch) | |
| tree | 27635a397ec2201fda7e489e11de1acd0b17f251 | |
| parent | 56c9bbe405920652978a76be6274268aa7dd491c (diff) | |
[tools] add project.json generation in vsc.py. (#9632)
* [tools] fix the SDK path issue in env script.
* [tools] add project.json generation in vsc.py.
* [tools] provide correct and clear comments in vsc.py
| -rw-r--r-- | tools/vsc.py | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/tools/vsc.py b/tools/vsc.py index bbb0debc6c..7d23f17958 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): @@ -39,7 +40,7 @@ def delete_repeatelist(data): def GenerateCFiles(env): """ - Generate c_cpp_properties files + Generate c_cpp_properties.json and build/compile_commands.json files """ if not os.path.exists('.vscode'): os.mkdir('.vscode') @@ -113,8 +114,47 @@ def GenerateCFiles(env): vsc_space_file.close() return +def GenerateProjectFiles(env): + """ + Generate project.json file + """ + 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!') |
