From f0f5af955fe03fa120b69c39f4a23ff3a177769b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 6 Jun 2022 11:40:50 +0200 Subject: Implementation of evaluate_require() plus other tweaks --- bpkg/package-configuration.hxx | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'bpkg/package-configuration.hxx') diff --git a/bpkg/package-configuration.hxx b/bpkg/package-configuration.hxx index 55a43a5..ba7240e 100644 --- a/bpkg/package-configuration.hxx +++ b/bpkg/package-configuration.hxx @@ -55,6 +55,11 @@ namespace bpkg class package_configuration: public vector { public: + package_key package; + + explicit + package_configuration (package_key p): package (move (p)) {} + config_variable_value* find (const string& name) { @@ -78,10 +83,24 @@ namespace bpkg } }; + class package_configurations: public small_vector + { + public: + package_configuration& + operator[] (const package_key& p) + { + auto i (find_if (begin (), end (), + [&p] (const package_configuration& pc) + { + return pc.package == p; + })); + if (i != end ()) + return *i; - // @@ Maybe redo as small_vector? - // - using package_configurations = map; + push_back (package_configuration (p)); + return back (); + } + }; // A subset of config_variable_value for variable values set by the -- cgit v1.1