diff options
author | 2020-03-26 08:55:34 +0100 | |
---|---|---|
committer | 2020-03-26 08:55:34 +0100 | |
commit | f7c81bea327aa909e26cca3519c157a5e4cb92e7 (patch) | |
tree | 6979648e628e96f3cbee66bbeff8152c38bde63c /eclass | |
parent | eclass/python-utils-r1: sync with gx86 (diff) | |
download | prefix-f7c81bea327aa909e26cca3519c157a5e4cb92e7.tar.gz prefix-f7c81bea327aa909e26cca3519c157a5e4cb92e7.tar.bz2 prefix-f7c81bea327aa909e26cca3519c157a5e4cb92e7.zip |
eclass/python-utils-r1: sync with x86
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/python-utils-r1.eclass | 173 |
1 files changed, 45 insertions, 128 deletions
diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 294efe6f66..87f0821b68 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -228,116 +228,24 @@ _python_impl_matches() { # python2.7 # @CODE -# @ECLASS-VARIABLE: PYTHON_SITEDIR -# @DEFAULT_UNSET -# @DESCRIPTION: -# The path to Python site-packages directory. -# -# Set and exported on request using python_export(). -# Requires a proper build-time dependency on the Python implementation. -# -# Example value: -# @CODE -# /usr/lib64/python2.7/site-packages -# @CODE - -# @ECLASS-VARIABLE: PYTHON_INCLUDEDIR -# @DEFAULT_UNSET -# @DESCRIPTION: -# The path to Python include directory. -# -# Set and exported on request using python_export(). -# Requires a proper build-time dependency on the Python implementation. -# -# Example value: -# @CODE -# /usr/include/python2.7 -# @CODE - -# @ECLASS-VARIABLE: PYTHON_LIBPATH -# @DEFAULT_UNSET -# @DESCRIPTION: -# The path to Python library. -# -# Set and exported on request using python_export(). -# Valid only for CPython. Requires a proper build-time dependency -# on the Python implementation. -# -# Example value: -# @CODE -# /usr/lib64/libpython2.7.so -# @CODE - -# @ECLASS-VARIABLE: PYTHON_CFLAGS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Proper C compiler flags for building against Python. Obtained from -# pkg-config or python-config. -# -# Set and exported on request using python_export(). -# Valid only for CPython. Requires a proper build-time dependency -# on the Python implementation and on pkg-config. -# -# Example value: -# @CODE -# -I/usr/include/python2.7 -# @CODE - -# @ECLASS-VARIABLE: PYTHON_LIBS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Proper C compiler flags for linking against Python. Obtained from -# pkg-config or python-config. -# -# Set and exported on request using python_export(). -# Valid only for CPython. Requires a proper build-time dependency -# on the Python implementation and on pkg-config. -# -# Example value: -# @CODE -# -lpython2.7 -# @CODE - -# @ECLASS-VARIABLE: PYTHON_CONFIG -# @DEFAULT_UNSET +# @FUNCTION: python_export +# @USAGE: [<impl>] <variables>... +# @INTERNAL # @DESCRIPTION: -# Path to the python-config executable. -# -# Set and exported on request using python_export(). -# Valid only for CPython. Requires a proper build-time dependency -# on the Python implementation and on pkg-config. -# -# Example value: -# @CODE -# /usr/bin/python2.7-config -# @CODE +# Backwards compatibility function. The relevant API is now considered +# private, please use python_get* instead. +python_export() { + debug-print-function ${FUNCNAME} "${@}" -# @ECLASS-VARIABLE: PYTHON_PKG_DEP -# @DEFAULT_UNSET -# @DESCRIPTION: -# The complete dependency on a particular Python package as a string. -# -# Set and exported on request using python_export(). -# -# Example value: -# @CODE -# dev-lang/python:2.7[xml] -# @CODE + eqawarn "python_export() is part of private eclass API." + eqawarn "Please call python_get*() instead." -# @ECLASS-VARIABLE: PYTHON_SCRIPTDIR -# @DEFAULT_UNSET -# @DESCRIPTION: -# The location where Python scripts must be installed for current impl. -# -# Set and exported on request using python_export(). -# -# Example value: -# @CODE -# /usr/lib/python-exec/python2.7 -# @CODE + _python_export "${@}" +} -# @FUNCTION: python_export +# @FUNCTION: _python_export # @USAGE: [<impl>] <variables>... +# @INTERNAL # @DESCRIPTION: # Set and export the Python implementation-relevant variables passed # as parameters. @@ -350,7 +258,7 @@ _python_impl_matches() { # The variables which can be exported are: PYTHON, EPYTHON, # PYTHON_SITEDIR. They are described more completely in the eclass # variable documentation. -python_export() { +_python_export() { debug-print-function ${FUNCNAME} "${@}" local impl var @@ -367,7 +275,7 @@ python_export() { *) impl=${EPYTHON} if [[ -z ${impl} ]]; then - die "python_export called without a python implementation and EPYTHON is unset" + die "_python_export called without a python implementation and EPYTHON is unset" fi ;; esac @@ -523,7 +431,7 @@ python_export() { debug-print "${FUNCNAME}: PYTHON_SCRIPTDIR = ${PYTHON_SCRIPTDIR}" ;; *) - die "python_export: unknown variable ${var}" + die "_python_export: unknown variable ${var}" esac done } @@ -534,13 +442,10 @@ python_export() { # Obtain and print the 'site-packages' path for the given # implementation. If no implementation is provided, ${EPYTHON} will # be used. -# -# If you just need to have PYTHON_SITEDIR set (and exported), then it is -# better to use python_export() directly instead. python_get_sitedir() { debug-print-function ${FUNCNAME} "${@}" - python_export "${@}" PYTHON_SITEDIR + _python_export "${@}" PYTHON_SITEDIR echo "${PYTHON_SITEDIR}" } @@ -549,13 +454,10 @@ python_get_sitedir() { # @DESCRIPTION: # Obtain and print the include path for the given implementation. If no # implementation is provided, ${EPYTHON} will be used. -# -# If you just need to have PYTHON_INCLUDEDIR set (and exported), then it -# is better to use python_export() directly instead. python_get_includedir() { debug-print-function ${FUNCNAME} "${@}" - python_export "${@}" PYTHON_INCLUDEDIR + _python_export "${@}" PYTHON_INCLUDEDIR echo "${PYTHON_INCLUDEDIR}" } @@ -570,7 +472,7 @@ python_get_includedir() { python_get_library_path() { debug-print-function ${FUNCNAME} "${@}" - python_export "${@}" PYTHON_LIBPATH + _python_export "${@}" PYTHON_LIBPATH echo "${PYTHON_LIBPATH}" } @@ -587,7 +489,7 @@ python_get_library_path() { python_get_CFLAGS() { debug-print-function ${FUNCNAME} "${@}" - python_export "${@}" PYTHON_CFLAGS + _python_export "${@}" PYTHON_CFLAGS echo "${PYTHON_CFLAGS}" } @@ -604,7 +506,7 @@ python_get_CFLAGS() { python_get_LIBS() { debug-print-function ${FUNCNAME} "${@}" - python_export "${@}" PYTHON_LIBS + _python_export "${@}" PYTHON_LIBS echo "${PYTHON_LIBS}" } @@ -621,7 +523,7 @@ python_get_LIBS() { python_get_PYTHON_CONFIG() { debug-print-function ${FUNCNAME} "${@}" - python_export "${@}" PYTHON_CONFIG + _python_export "${@}" PYTHON_CONFIG echo "${PYTHON_CONFIG}" } @@ -634,7 +536,7 @@ python_get_PYTHON_CONFIG() { python_get_scriptdir() { debug-print-function ${FUNCNAME} "${@}" - python_export "${@}" PYTHON_SCRIPTDIR + _python_export "${@}" PYTHON_SCRIPTDIR echo "${PYTHON_SCRIPTDIR}" } @@ -699,7 +601,7 @@ python_optimize() { [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).' local PYTHON=${PYTHON} - [[ ${PYTHON} ]] || python_export PYTHON + [[ ${PYTHON} ]] || _python_export PYTHON # default to sys.path if [[ ${#} -eq 0 ]]; then @@ -803,7 +705,7 @@ python_newexe() { local newfn=${2} local PYTHON_SCRIPTDIR d - python_export PYTHON_SCRIPTDIR PYTHON_EPREFIX + _python_export PYTHON_SCRIPTDIR PYTHON_EPREFIX d=${PYTHON_SCRIPTDIR#${PYTHON_EPREFIX}} ( @@ -931,7 +833,7 @@ python_domodule() { else # relative to site-packages local PYTHON_SITEDIR=${PYTHON_SITEDIR} - [[ ${PYTHON_SITEDIR} ]] || python_export PYTHON_SITEDIR PYTHON_EPREFIX + [[ ${PYTHON_SITEDIR} ]] || _python_export PYTHON_SITEDIR PYTHON_EPREFIX d=${PYTHON_SITEDIR#${PYTHON_EPREFIX:-${EPREFIX}}}/${python_moduleroot} fi @@ -964,7 +866,7 @@ python_doheader() { [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).' local d PYTHON_INCLUDEDIR=${PYTHON_INCLUDEDIR} - [[ ${PYTHON_INCLUDEDIR} ]] || python_export PYTHON_INCLUDEDIR PYTHON_EPREFIX + [[ ${PYTHON_INCLUDEDIR} ]] || _python_export PYTHON_INCLUDEDIR PYTHON_EPREFIX d=${PYTHON_INCLUDEDIR#${PYTHON_EPREFIX:-${EPREFIX}}} @@ -978,6 +880,21 @@ python_doheader() { # @FUNCTION: python_wrapper_setup # @USAGE: [<path> [<impl>]] # @DESCRIPTION: +# Backwards compatibility function. The relevant API is now considered +# private, please use python_setup instead. +python_wrapper_setup() { + debug-print-function ${FUNCNAME} "${@}" + + eqawarn "python_wrapper_setup() is part of private eclass API." + eqawarn "Please call python_setup() instead." + + _python_wrapper_setup "${@}" +} + +# @FUNCTION: _python_wrapper_setup +# @USAGE: [<path> [<impl>]] +# @INTERNAL +# @DESCRIPTION: # Create proper 'python' executable and pkg-config wrappers # (if available) in the directory named by <path>. Set up PATH # and PKG_CONFIG_PATH appropriately. <path> defaults to ${T}/${EPYTHON}. @@ -989,7 +906,7 @@ python_doheader() { # be assumed to contain proper wrappers already and only environment # setup will be done. If wrapper update is requested, the directory # shall be removed first. -python_wrapper_setup() { +_python_wrapper_setup() { debug-print-function ${FUNCNAME} "${@}" local workdir=${1:-${T}/${EPYTHON}} @@ -1009,7 +926,7 @@ python_wrapper_setup() { rm -f "${workdir}"/pkgconfig/python{2,3}{,-embed}.pc || die local EPYTHON PYTHON - python_export "${impl}" EPYTHON PYTHON + _python_export "${impl}" EPYTHON PYTHON local pyver pyother if python_is_python3; then @@ -1119,7 +1036,7 @@ python_is_installed() { esac local PYTHON_PKG_DEP - python_export "${impl}" PYTHON_PKG_DEP + _python_export "${impl}" PYTHON_PKG_DEP has_version "${hasv_args[@]}" "${PYTHON_PKG_DEP}" } |