Fixed progress indicators ranges with multiple commands per TU (#240)
This commit is contained in:
@@ -31,6 +31,7 @@ Checks: >-
|
|||||||
-google-explicit-constructor,
|
-google-explicit-constructor,
|
||||||
-google-build-using-namespace,
|
-google-build-using-namespace,
|
||||||
-google-upgrade-*,
|
-google-upgrade-*,
|
||||||
|
-google-runtime-int,
|
||||||
-hicpp-signed-bitwise,
|
-hicpp-signed-bitwise,
|
||||||
-hicpp-explicit-conversions,
|
-hicpp-explicit-conversions,
|
||||||
-llvmlibc-*,
|
-llvmlibc-*,
|
||||||
|
|||||||
@@ -88,6 +88,21 @@ std::string compilation_database::guess_language_from_filename(
|
|||||||
return "c++";
|
return "c++";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long compilation_database::count_matching_commands(
|
||||||
|
const std::vector<std::string> &files) const
|
||||||
|
{
|
||||||
|
auto result{0L};
|
||||||
|
|
||||||
|
auto commands = base().getAllCompileCommands();
|
||||||
|
|
||||||
|
for (const auto &command : commands) {
|
||||||
|
result += std::count_if(files.begin(), files.end(),
|
||||||
|
[&command](const auto &file) { return command.Filename == file; });
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void compilation_database::adjust_compilation_database(
|
void compilation_database::adjust_compilation_database(
|
||||||
std::vector<clang::tooling::CompileCommand> &commands) const
|
std::vector<clang::tooling::CompileCommand> &commands) const
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -103,6 +103,8 @@ public:
|
|||||||
|
|
||||||
std::string guess_language_from_filename(const std::string &filename) const;
|
std::string guess_language_from_filename(const std::string &filename) const;
|
||||||
|
|
||||||
|
long count_matching_commands(const std::vector<std::string> &files) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void adjust_compilation_database(
|
void adjust_compilation_database(
|
||||||
std::vector<clang::tooling::CompileCommand> &commands) const;
|
std::vector<clang::tooling::CompileCommand> &commands) const;
|
||||||
|
|||||||
@@ -246,13 +246,16 @@ void generate_diagrams(const std::vector<std::string> &diagram_names,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto matching_commands_count =
|
||||||
|
db->count_matching_commands(valid_translation_units);
|
||||||
|
|
||||||
auto generator = [&name = name, &diagram = diagram, &indicator,
|
auto generator = [&name = name, &diagram = diagram, &indicator,
|
||||||
db = std::ref(*db),
|
db = std::ref(*db), matching_commands_count,
|
||||||
translation_units = valid_translation_units,
|
translation_units = valid_translation_units,
|
||||||
runtime_config]() mutable {
|
runtime_config]() mutable {
|
||||||
try {
|
try {
|
||||||
if (indicator)
|
if (indicator)
|
||||||
indicator->add_progress_bar(name, translation_units.size(),
|
indicator->add_progress_bar(name, matching_commands_count,
|
||||||
diagram_type_to_color(diagram->type()));
|
diagram_type_to_color(diagram->type()));
|
||||||
|
|
||||||
generate_diagram(name, diagram, db, translation_units,
|
generate_diagram(name, diagram, db, translation_units,
|
||||||
|
|||||||
Reference in New Issue
Block a user