From ee53542e181af6d65be33abaaeed90edd53b6eb0 Mon Sep 17 00:00:00 2001 From: dg Date: Sun, 7 May 2023 19:35:55 +0000 Subject: [PATCH] Eliminate config includes, as nothing uses them any more and it just makes things like documentation generation hard. --- lib/config.proto | 1 - lib/flags.cc | 21 +-------------------- tests/configs.cc | 16 ++-------------- 3 files changed, 3 insertions(+), 35 deletions(-) diff --git a/lib/config.proto b/lib/config.proto index 1d4dc81c..c62a8c2a 100644 --- a/lib/config.proto +++ b/lib/config.proto @@ -17,7 +17,6 @@ message ConfigProto { optional string comment = 8; optional bool is_extension = 13; - repeated string include = 19; repeated string documentation = 23; optional LayoutProto layout = 18; diff --git a/lib/flags.cc b/lib/flags.cc index 2d37d11a..437ed0aa 100644 --- a/lib/flags.cc +++ b/lib/flags.cc @@ -53,11 +53,6 @@ void FlagGroup::applyOption(const OptionProto& option) "option '{}' has an option group inside it, which isn't " "allowed", option.name()); - if (option.config().include_size() > 0) - Error() << fmt::format( - "option '{}' is trying to include something, which " - "isn't allowed", - option.name()); Logger() << fmt::format("OPTION: {}", option.has_message() ? option.message() : option.comment()); @@ -316,21 +311,7 @@ ConfigProto FlagGroup::parseSingleConfigFile(const std::string& filename, void FlagGroup::parseConfigFile(const std::string& filename, const std::map& configFiles) { - auto newConfig = parseSingleConfigFile(filename, configFiles); - - /* The includes need to be merged _first_. */ - - for (const auto& include : newConfig.include()) - { - auto included = parseSingleConfigFile(include, configFiles); - if (included.include_size() != 0) - Error() << "only one level of config file includes are supported " - "(so far, if you need this, complain)"; - - config.MergeFrom(included); - } - - config.MergeFrom(newConfig); + config.MergeFrom(parseSingleConfigFile(filename, configFiles)); } void FlagGroup::checkInitialised() const diff --git a/tests/configs.cc b/tests/configs.cc index 5821a531..a58b49eb 100644 --- a/tests/configs.cc +++ b/tests/configs.cc @@ -89,25 +89,13 @@ static void validateConfigWithOptions(std::string baseConfigName, static void validateToplevelConfig(std::string name) { - ConfigProto toplevel = findConfig(name); + ConfigProto config = findConfig(name); /* Don't test extension configs. */ - if (toplevel.is_extension()) + if (config.is_extension()) return; - /* Apply any includes. */ - - ConfigProto config; - for (const auto& include : toplevel.include()) - { - ConfigProto included = findConfig(include); - if (included.include_size() != 0) - error("{}: extension config contains _includes", include); - config.MergeFrom(included); - } - config.MergeFrom(toplevel); - /* Collate options. */ std::map optionProtos;