Browse Source

[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
aka-adi 5 months ago
parent
commit
9291946c74
2 changed files with 10 additions and 10 deletions
  1. 5 5
      tools/building.py
  2. 5 5
      tools/vsc.py

+ 5 - 5
tools/building.py

@@ -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)

+ 5 - 5
tools/vsc.py

@@ -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=.",