[tools]: fix the issue of missing commands in compile_commands.json (#9856)

* [tools]: fix the issue of missing commands in compile_commands.json

* [tools]: fix the path of compile_commands.json
This commit is contained in:
aka-adi 2025-01-03 00:17:56 +08:00 committed by GitHub
parent 73ea6dab02
commit 9291946c74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 10 deletions

View File

@ -823,6 +823,11 @@ def DoBuilding(target, objects):
break
else:
# generate build/compile_commands.json
if GetOption('cdb') and utils.VerTuple(SCons.__version__) >= (4, 0, 0):
Env.Tool("compilation_db")
Env.CompilationDatabase('build/compile_commands.json')
# remove source files with local flags setting
for group in Projects:
if 'LOCAL_CFLAGS' in group or 'LOCAL_CXXFLAGS' in group or 'LOCAL_CCFLAGS' in group or 'LOCAL_CPPPATH' in group or 'LOCAL_CPPDEFINES' in group:
@ -843,11 +848,6 @@ def DoBuilding(target, objects):
objects = sorted(objects)
objects.append(objects_in_group)
# generate build/compile_commands.json
if GetOption('cdb') and utils.VerTuple(SCons.__version__) >= (4, 0, 0):
Env.Tool("compilation_db")
Env.CompilationDatabase('build/compile_commands.json')
program = Env.Program(target, objects)
EndBuilding(target, program)

View File

@ -162,7 +162,7 @@ def generate_code_workspace_file(source_dirs,command_json_path,root_path):
def command_json_to_workspace(root_path,command_json_path):
with open('compile_commands.json', 'r') as f:
with open('build/compile_commands.json', 'r') as f:
compile_commands = json.load(f)
source_dirs = extract_source_dirs(compile_commands)
@ -246,11 +246,11 @@ def GenerateCFiles(env):
vsc_file.close()
"""
Generate vscode.code-workspace files by compile_commands.json
Generate vscode.code-workspace files by build/compile_commands.json
"""
if os.path.exists('compile_commands.json'):
if os.path.exists('build/compile_commands.json'):
command_json_to_workspace(env['RTT_ROOT'],'compile_commands.json')
command_json_to_workspace(env['RTT_ROOT'],'build/compile_commands.json')
return
"""
Generate vscode.code-workspace files
@ -282,7 +282,7 @@ def GenerateCFiles(env):
segments = [p for p in normalized_path.split(os.path.sep) if p != '..']
path['name'] = 'rtthread/' + '/'.join(segments)
json_obj['folders'] = path_list
if os.path.exists('compile_commands.json'):
if os.path.exists('build/compile_commands.json'):
json_obj['settings'] = {
"clangd.arguments": [
"--compile-commands-dir=.",