| # Copyright 2018 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| __all__ = ("iter_iuse_vars",) |
| |
| |
| def iter_iuse_vars(env): |
| """ |
| Iterate over (key, value) pairs of profile variables that contribute |
| to implicit IUSE for EAPI 5 and later. |
| |
| @param env: Ebuild environment |
| @type env: Mapping |
| @rtype: iterator |
| @return: iterator over (key, value) pairs of profile variables |
| """ |
| |
| for k in ( |
| "IUSE_IMPLICIT", |
| "USE_EXPAND_IMPLICIT", |
| "USE_EXPAND_UNPREFIXED", |
| "USE_EXPAND", |
| ): |
| v = env.get(k) |
| if v is not None: |
| yield (k, v) |
| |
| use_expand_implicit = frozenset(env.get("USE_EXPAND_IMPLICIT", "").split()) |
| |
| for v in ( |
| env.get("USE_EXPAND_UNPREFIXED", "").split() + env.get("USE_EXPAND", "").split() |
| ): |
| if v in use_expand_implicit: |
| k = "USE_EXPAND_VALUES_" + v |
| v = env.get(k) |
| if v is not None: |
| yield (k, v) |