From a404a3070d15eb96bd25463c84f85c8bb3e11c5d Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Fri, 23 Feb 2024 21:33:23 +0100 Subject: [PATCH] Fix handling of query_driver option in config file (#243) --- src/config/schema.h | 1 + src/config/yaml_decoders.cc | 1 + src/config/yaml_emitters.cc | 1 + tests/test_config.cc | 1 + tests/test_config_data/complete.yml | 2 ++ tests/test_config_data/simple.yml | 1 + 6 files changed, 7 insertions(+) diff --git a/src/config/schema.h b/src/config/schema.h index b1e05ad7..089c71c0 100644 --- a/src/config/schema.h +++ b/src/config/schema.h @@ -301,6 +301,7 @@ root: # compilation_database_dir: !optional string output_directory: !optional string + query_driver: !optional string add_compile_flags: !optional [string] remove_compile_flags: !optional [string] diagram_templates: !optional diagram_templates_t diff --git a/src/config/yaml_decoders.cc b/src/config/yaml_decoders.cc index 691a7c17..96573065 100644 --- a/src/config/yaml_decoders.cc +++ b/src/config/yaml_decoders.cc @@ -815,6 +815,7 @@ template <> struct convert { get_option(node, rhs.using_namespace); get_option(node, rhs.using_module); get_option(node, rhs.output_directory); + get_option(node, rhs.query_driver); get_option(node, rhs.compilation_database_dir); get_option(node, rhs.add_compile_flags); get_option(node, rhs.remove_compile_flags); diff --git a/src/config/yaml_emitters.cc b/src/config/yaml_emitters.cc index 35c92595..3d1a0234 100644 --- a/src/config/yaml_emitters.cc +++ b/src/config/yaml_emitters.cc @@ -274,6 +274,7 @@ YAML::Emitter &operator<<(YAML::Emitter &out, const config &c) out << c.compilation_database_dir; out << c.output_directory; + out << c.query_driver; out << c.add_compile_flags; out << c.remove_compile_flags; diff --git a/tests/test_config.cc b/tests/test_config.cc index c31872c2..898f0b20 100644 --- a/tests/test_config.cc +++ b/tests/test_config.cc @@ -32,6 +32,7 @@ TEST_CASE("Test config simple", "[unit-test]") auto cfg = clanguml::config::load("./test_config_data/simple.yml"); + CHECK(cfg.query_driver() == "g++"); CHECK(cfg.diagrams.size() == 1); auto &diagram = *cfg.diagrams["class_main"]; CHECK(diagram.type() == clanguml::common::model::diagram_t::kClass); diff --git a/tests/test_config_data/complete.yml b/tests/test_config_data/complete.yml index f5244d1c..727e103a 100644 --- a/tests/test_config_data/complete.yml +++ b/tests/test_config_data/complete.yml @@ -2,6 +2,8 @@ compilation_database_dir: debug # The directory where *.puml files will be generated output_directory: docs/diagrams +# Query compiler frontend for compilation flags +query_driver: . # Set this as default for all diagrams generate_method_arguments: none # Enable generation of hyperlinks to diagram elements diff --git a/tests/test_config_data/simple.yml b/tests/test_config_data/simple.yml index a0ac5fa0..662d7eea 100644 --- a/tests/test_config_data/simple.yml +++ b/tests/test_config_data/simple.yml @@ -1,6 +1,7 @@ compilation_database_dir: debug comment_parser: clang output_directory: output +query_driver: g++ generate_template_argument_dependencies: false diagrams: class_main: