diff --git a/.clang-tidy b/.clang-tidy index c2ba4d82..1307bee6 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -31,6 +31,7 @@ Checks: >- -google-explicit-constructor, -google-build-using-namespace, -google-upgrade-*, + -google-runtime-int, -hicpp-signed-bitwise, -hicpp-explicit-conversions, -llvmlibc-*, diff --git a/src/common/compilation_database.cc b/src/common/compilation_database.cc index dc9fe9ec..5553b36d 100644 --- a/src/common/compilation_database.cc +++ b/src/common/compilation_database.cc @@ -88,6 +88,21 @@ std::string compilation_database::guess_language_from_filename( return "c++"; } +long compilation_database::count_matching_commands( + const std::vector &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( std::vector &commands) const { diff --git a/src/common/compilation_database.h b/src/common/compilation_database.h index e1532b87..5a4125f1 100644 --- a/src/common/compilation_database.h +++ b/src/common/compilation_database.h @@ -103,6 +103,8 @@ public: std::string guess_language_from_filename(const std::string &filename) const; + long count_matching_commands(const std::vector &files) const; + private: void adjust_compilation_database( std::vector &commands) const; diff --git a/src/common/generators/generators.cc b/src/common/generators/generators.cc index 4799e8c0..03494ceb 100644 --- a/src/common/generators/generators.cc +++ b/src/common/generators/generators.cc @@ -246,13 +246,16 @@ void generate_diagrams(const std::vector &diagram_names, continue; } + const auto matching_commands_count = + db->count_matching_commands(valid_translation_units); + auto generator = [&name = name, &diagram = diagram, &indicator, - db = std::ref(*db), + db = std::ref(*db), matching_commands_count, translation_units = valid_translation_units, runtime_config]() mutable { try { if (indicator) - indicator->add_progress_bar(name, translation_units.size(), + indicator->add_progress_bar(name, matching_commands_count, diagram_type_to_color(diagram->type())); generate_diagram(name, diagram, db, translation_units,