diff options
-rw-r--r-- | meta/classes/pip_install_wheel.bbclass | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/meta/classes/pip_install_wheel.bbclass b/meta/classes/pip_install_wheel.bbclass new file mode 100644 index 0000000000..70f47d6f79 --- /dev/null +++ b/meta/classes/pip_install_wheel.bbclass | |||
@@ -0,0 +1,39 @@ | |||
1 | DEPENDS:append = " python3-pip-native" | ||
2 | |||
3 | PIP_INSTALL_PACKAGE ?= "${PYPI_PACKAGE}" | ||
4 | PIP_INSTALL_DIST_PATH ?= "${B}/dist" | ||
5 | PYPA_WHEEL ??= "${PIP_INSTALL_DIST_PATH}/${PIP_INSTALL_PACKAGE}-${PV}-*.whl" | ||
6 | |||
7 | PIP_INSTALL_ARGS ?= "\ | ||
8 | -vvvv \ | ||
9 | --force-reinstall \ | ||
10 | --no-cache \ | ||
11 | --no-deps \ | ||
12 | --no-index \ | ||
13 | --root=${D} \ | ||
14 | --prefix=${prefix} \ | ||
15 | " | ||
16 | |||
17 | pip_install_wheel_do_install:prepend () { | ||
18 | install -d ${D}${PYTHON_SITEPACKAGES_DIR} | ||
19 | } | ||
20 | |||
21 | export PYPA_WHEEL | ||
22 | |||
23 | PIP_INSTALL_PYTHON = "python3" | ||
24 | PIP_INSTALL_PYTHON:class-native = "nativepython3" | ||
25 | |||
26 | pip_install_wheel_do_install () { | ||
27 | nativepython3 -m pip install ${PIP_INSTALL_ARGS} ${PYPA_WHEEL} || | ||
28 | bbfatal_log "Failed to pip install wheel. Check the logs." | ||
29 | |||
30 | for i in ${D}${bindir}/* ${D}${sbindir}/*; do | ||
31 | if [ -f "$i" ]; then | ||
32 | sed -i -e "1s,#!.*nativepython3,#!${USRBINPATH}/env ${PIP_INSTALL_PYTHON}," $i | ||
33 | sed -i -e "s:${PYTHON}:${USRBINPATH}/env\ ${PIP_INSTALL_PYTHON}:g" $i | ||
34 | sed -i -e "s:${STAGING_BINDIR_NATIVE}:${bindir}:g" $i | ||
35 | fi | ||
36 | done | ||
37 | } | ||
38 | |||
39 | EXPORT_FUNCTIONS do_install | ||