a) Create a single compile_commands.json by incrementally adding elements after each build.
When a build is called, log the build as before into temporary build.json. Then take the entries and merge the content of build.json into compile_commands.json in the following way:
If a.cpp is found in build.json then remove all entries for a.cpp from compile_commands.json and add all entries for a.cpp into build.json.
This way we will get a continously growing compile_commands.json, which will contain all compiliation actions at the end.
When clean build called compile_commands.json can be totally replaced with build.json.
b) When a file is opened, start reanalyzing it in the background by calling
CodeChecker anlayze -i skip.file
and the skip file should only contain the analyzed file.
As simple first step the analysis output can be a single same directory, but multiple analysis jobs should not be writing the same report directory simultaneously (because it is not supported by codechecker).
a) Create a single compile_commands.json by incrementally adding elements after each build. When a build is called, log the build as before into temporary build.json. Then take the entries and merge the content of build.json into compile_commands.json in the following way: If a.cpp is found in build.json then remove all entries for a.cpp from compile_commands.json and add all entries for a.cpp into build.json. This way we will get a continously growing compile_commands.json, which will contain all compiliation actions at the end.
When clean build called compile_commands.json can be totally replaced with build.json.
b) When a file is opened, start reanalyzing it in the background by calling CodeChecker anlayze -i skip.file and the skip file should only contain the analyzed file.
As simple first step the analysis output can be a single same directory, but multiple analysis jobs should not be writing the same report directory simultaneously (because it is not supported by codechecker).