From 7923f9611e728926933e4b8a8e9f530966f0fc0c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 17 Jun 2022 08:44:58 +0200 Subject: Re-implement evaluate_reflect() to use same mechanisms as other evaluate_*() --- bpkg/package-skeleton.hxx | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'bpkg/package-skeleton.hxx') diff --git a/bpkg/package-skeleton.hxx b/bpkg/package-skeleton.hxx index 1e274c0..7224d1d 100644 --- a/bpkg/package-skeleton.hxx +++ b/bpkg/package-skeleton.hxx @@ -266,6 +266,9 @@ namespace bpkg strings cmd_vars_; bool cmd_vars_cache_ = false; + strings dependent_vars_; // Dependent variable overrides. + vector dependent_orgs_; // Dependent originators (parallel). + // Reflect variable value storage. Used for both real reflect and // dependency reflect. // @@ -277,13 +280,22 @@ namespace bpkg optional value; }; - using reflect_variable_values = vector; - - strings dependent_vars_; // Dependent variable overrides. - vector dependent_orgs_; // Dependent originators (parallel). + class reflect_variable_values: public vector + { + public: + const reflect_variable_value* + find (const string& name) + { + auto i (find_if (begin (), end (), + [&name] (const reflect_variable_value& v) + { + return v.name == name; + })); + return i != end () ? &*i : nullptr; + } + }; - strings reflect_vars_; // Reflect variable overrides. - string reflect_frag_; // Reflect variables fragment. + reflect_variable_values reflect_; // Reflect variables. // Dependency configuration variables set by the prefer/require clauses // and that should be reflected in subsequent clauses. -- cgit v1.1