Updated remove_compile_flags option

This commit is contained in:
Bartek Kryza
2023-05-05 20:28:49 +02:00
parent f912e7ae5d
commit d349f3e01c
14 changed files with 343 additions and 80 deletions

View File

@@ -79,7 +79,7 @@ void generate_diagram_select_generator(const std::string &od,
template <typename DiagramConfig>
void generate_diagram_impl(const std::string &od, const std::string &name,
std::shared_ptr<clanguml::config::diagram> diagram,
const clang::tooling::CompilationDatabase &db,
const common::compilation_database &db,
const std::vector<std::string> &translation_units,
const std::vector<clanguml::common::generator_type_t> &generators,
bool verbose)
@@ -107,7 +107,7 @@ void generate_diagram_impl(const std::string &od, const std::string &name,
void generate_diagram(const std::string &od, const std::string &name,
std::shared_ptr<clanguml::config::diagram> diagram,
const clang::tooling::CompilationDatabase &db,
const common::compilation_database &db,
const std::vector<std::string> &translation_units,
const std::vector<clanguml::common::generator_type_t> &generators,
bool verbose)
@@ -139,9 +139,9 @@ void generate_diagram(const std::string &od, const std::string &name,
}
void generate_diagrams(const std::vector<std::string> &diagram_names,
clanguml::config::config &config, const std::string &od,
const std::unique_ptr<clang::tooling::CompilationDatabase> &db,
const int verbose, const unsigned int thread_count,
config::config &config, const std::string &od,
const common::compilation_database_ptr &db, const int verbose,
const unsigned int thread_count,
const std::vector<clanguml::common::generator_type_t> &generators,
const std::map<std::string, std::vector<std::string>>
&translation_units_map)
@@ -184,17 +184,4 @@ void generate_diagrams(const std::vector<std::string> &diagram_names,
}
}
void adjust_compilation_database(const clanguml::config::config &config,
clang::tooling::CompilationDatabase &db)
{
if (config.add_compile_flags && !config.add_compile_flags().empty()) {
for (auto &compile_command : db.getAllCompileCommands()) {
compile_command.CommandLine.insert(
compile_command.CommandLine.begin() + 1,
config.add_compile_flags().begin(),
config.add_compile_flags().end());
}
}
}
} // namespace clanguml::common::generators

View File

@@ -20,6 +20,7 @@
#include "class_diagram/generators/json/class_diagram_generator.h"
#include "class_diagram/generators/plantuml/class_diagram_generator.h"
#include "cli/cli_handler.h"
#include "common/compilation_database.h"
#include "common/generators/generators.h"
#include "common/model/diagram_filter.h"
#include "config/config.h"
@@ -33,7 +34,6 @@
#include "version.h"
#include <clang/Frontend/CompilerInstance.h>
#include <clang/Tooling/CompilationDatabase.h>
#include <clang/Tooling/Tooling.h>
#include <cstring>
@@ -139,9 +139,6 @@ void find_translation_units_for_diagrams(
const std::vector<std::string> &compilation_database_files,
std::map<std::string, std::vector<std::string>> &translation_units_map);
void adjust_compilation_database(const clanguml::config::config &config,
clang::tooling::CompilationDatabase &db);
template <typename DiagramModel, typename DiagramConfig,
typename TranslationUnitVisitor>
class diagram_ast_consumer : public clang::ASTConsumer {
@@ -229,10 +226,9 @@ private:
template <typename DiagramModel, typename DiagramConfig,
typename DiagramVisitor>
std::unique_ptr<DiagramModel> generate(
const clang::tooling::CompilationDatabase &db, const std::string &name,
DiagramConfig &config, const std::vector<std::string> &translation_units,
bool /*verbose*/ = false)
std::unique_ptr<DiagramModel> generate(const common::compilation_database &db,
const std::string &name, DiagramConfig &config,
const std::vector<std::string> &translation_units, bool /*verbose*/ = false)
{
LOG_INFO("Generating diagram {}", name);
@@ -262,14 +258,14 @@ std::unique_ptr<DiagramModel> generate(
void generate_diagram(const std::string &od, const std::string &name,
std::shared_ptr<clanguml::config::diagram> diagram,
const clang::tooling::CompilationDatabase &db,
const common::compilation_database &db,
const std::vector<std::string> &translation_units,
const std::vector<clanguml::common::generator_type_t> &generators,
bool verbose);
void generate_diagrams(const std::vector<std::string> &diagram_names,
clanguml::config::config &config, const std::string &od,
const std::unique_ptr<clang::tooling::CompilationDatabase> &db, int verbose,
const common::compilation_database_ptr &db, int verbose,
unsigned int thread_count,
const std::vector<clanguml::common::generator_type_t> &generators,
const std::map<std::string, std::vector<std::string>>