python-r1.eclass: Move PYTHON_COMPAT_OVERRIDE warning into flag check
authorMichał Górny <mgorny@gentoo.org>
Fri, 19 May 2017 16:11:48 +0000 (18:11 +0200)
committerMichał Górny <mgorny@gentoo.org>
Mon, 29 May 2017 21:53:41 +0000 (23:53 +0200)
Move the PYTHON_COMPAT_OVERRIDE warning from _python_obtain_impls()
to _python_validate_useflags(). Since the latter function is the only
point where the former is called, this is a purely cosmetic change at
the moment. However, it makes it possible to reuse the warning in
additional places without the necessity of setting MULTIBUILD_VARIANTS.

eclass/python-r1.eclass

index 5eaa802e06b995a5865bea174309a35107077ad6..ae9e3806e729d319f1112763b5029dd0a0a3ec65 100644 (file)
@@ -242,10 +242,25 @@ if [[ ! ${_PYTHON_R1} ]]; then
 # @FUNCTION: _python_validate_useflags
 # @INTERNAL
 # @DESCRIPTION:
-# Enforce the proper setting of PYTHON_TARGETS.
+# Enforce the proper setting of PYTHON_TARGETS, if PYTHON_COMPAT_OVERRIDE
+# is not in effect. If it is, just warn that the flags will be ignored.
 _python_validate_useflags() {
        debug-print-function ${FUNCNAME} "${@}"
 
+       if [[ ${PYTHON_COMPAT_OVERRIDE} ]]; then
+               if [[ ! ${_PYTHON_COMPAT_OVERRIDE_WARNED} ]]; then
+                       ewarn "WARNING: PYTHON_COMPAT_OVERRIDE in effect. The following Python"
+                       ewarn "implementations will be enabled:"
+                       ewarn
+                       ewarn " ${PYTHON_COMPAT_OVERRIDE}"
+                       ewarn
+                       ewarn "Dependencies won't be satisfied, and PYTHON_TARGETS will be ignored."
+                       _PYTHON_COMPAT_OVERRIDE_WARNED=1
+               fi
+               # we do not use flags with PCO
+               return
+       fi
+
        local i
 
        for i in "${_PYTHON_SUPPORTED_IMPLS[@]}"; do
@@ -490,23 +505,13 @@ python_copy_sources() {
 # @DESCRIPTION:
 # Set up the enabled implementation list.
 _python_obtain_impls() {
-       if [[ ${PYTHON_COMPAT_OVERRIDE} ]]; then
-               if [[ ! ${_PYTHON_COMPAT_OVERRIDE_WARNED} ]]; then
-                       ewarn "WARNING: PYTHON_COMPAT_OVERRIDE in effect. The following Python"
-                       ewarn "implementations will be enabled:"
-                       ewarn
-                       ewarn " ${PYTHON_COMPAT_OVERRIDE}"
-                       ewarn
-                       ewarn "Dependencies won't be satisfied, and PYTHON_TARGETS will be ignored."
-                       _PYTHON_COMPAT_OVERRIDE_WARNED=1
-               fi
+       _python_validate_useflags
 
+       if [[ ${PYTHON_COMPAT_OVERRIDE} ]]; then
                MULTIBUILD_VARIANTS=( ${PYTHON_COMPAT_OVERRIDE} )
                return
        fi
 
-       _python_validate_useflags
-
        MULTIBUILD_VARIANTS=()
 
        local impl