diff options
Diffstat (limited to 'pym/_emerge/Package.py')
-rw-r--r-- | pym/_emerge/Package.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index 593e0d3eb..7a25638c8 100644 --- a/pym/_emerge/Package.py +++ b/pym/_emerge/Package.py @@ -389,10 +389,13 @@ class Package(Task): class _use_class(object): - __slots__ = ("enabled", "_force", "_pkg", "_mask") + __slots__ = ("enabled", "_expand", "_expand_hidden", + "_force", "_pkg", "_mask") def __init__(self, pkg, use_str): self._pkg = pkg + self._expand = None + self._expand_hidden = None self._force = None self._mask = None self.enabled = frozenset(use_str.split()) @@ -407,10 +410,26 @@ class Package(Task): def _init_force_mask(self): pkgsettings = self._pkg._get_pkgsettings() + self._expand = frozenset( + pkgsettings.get("USE_EXPAND", "").lower().split()) + self._expand_hidden = frozenset( + pkgsettings.get("USE_EXPAND_HIDDEN", "").lower().split()) self._force = pkgsettings.useforce self._mask = pkgsettings.usemask @property + def expand(self): + if self._expand is None: + self._init_force_mask() + return self._expand + + @property + def expand_hidden(self): + if self._expand_hidden is None: + self._init_force_mask() + return self._expand_hidden + + @property def force(self): if self._force is None: self._init_force_mask() |