aboutsummaryrefslogtreecommitdiff
path: root/paludis/repositories/e/ebuild_id.cc
diff options
context:
space:
mode:
Diffstat (limited to 'paludis/repositories/e/ebuild_id.cc')
-rw-r--r--paludis/repositories/e/ebuild_id.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/paludis/repositories/e/ebuild_id.cc b/paludis/repositories/e/ebuild_id.cc
index 86807ab43..050ee4f83 100644
--- a/paludis/repositories/e/ebuild_id.cc
+++ b/paludis/repositories/e/ebuild_id.cc
@@ -106,6 +106,7 @@ namespace paludis
mutable std::shared_ptr<const EStringSetKey> raw_iuse;
mutable std::shared_ptr<const LiteralMetadataStringSetKey> raw_iuse_effective;
mutable std::shared_ptr<const EMyOptionsKey> raw_myoptions;
+ mutable std::shared_ptr<const ERequiredUseKey> required_use;
mutable std::shared_ptr<const EStringSetKey> inherited;
mutable std::shared_ptr<const EStringSetKey> raw_use;
mutable std::shared_ptr<const LiteralMetadataStringSetKey> raw_use_expand;
@@ -712,6 +713,13 @@ EbuildID::raw_myoptions_key() const
return _imp->raw_myoptions;
}
+const std::shared_ptr<const MetadataSpecTreeKey<RequiredUseSpecTree> >
+EbuildID::required_use_key() const
+{
+ need_keys_added();
+ return _imp->required_use;
+}
+
const std::shared_ptr<const MetadataCollectionKey<Set<std::string> > >
EbuildID::raw_use_key() const
{
@@ -1048,6 +1056,14 @@ EbuildID::load_myoptions(const std::string & r, const std::string & h, const std
}
void
+EbuildID::load_required_use(const std::string & r, const std::string & h, const std::string & v) const
+{
+ Lock l(_imp->mutex);
+ _imp->required_use = std::make_shared<ERequiredUseKey>(_imp->environment, shared_from_this(), r, h, v, mkt_internal);
+ add_metadata_key(_imp->required_use);
+}
+
+void
EbuildID::load_use(const std::string & r, const std::string & h, const std::string & v) const
{
Lock l(_imp->mutex);