[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
This commit is contained in:
parent
56c9bbe405
commit
f8ea6c6527
42
tools/vsc.py
42
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!')
|
||||
|
||||
|
|
Loading…
Reference in New Issue