| # 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) |