python3-wheel-native: install ${bindir}/wheel

pip install would normally install [project.scripts] to ${D}${bindir}
but our naïve bootstrapping only unzipps the wheel to
${D}${PYTHON_SITEPACKAGES_DIR}. Correct this by creating the equivalent
script in do_install:class-native

[YOCTO #14739]

(From OE-Core rev: 19e83270d17984cf6b471c387eb08103816b359f)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Tim Orling
2022-02-23 14:09:13 -08:00
committed by Richard Purdie
parent 3dbb469523
commit ae5f415311

View File

@@ -18,6 +18,22 @@ do_install:class-native () {
PYPA_WHEEL="${B}/dist/${PYPI_PACKAGE}-${PV}-*.whl"
unzip -d ${D}${PYTHON_SITEPACKAGES_DIR} ${PYPA_WHEEL} || \
bbfatal_log "Failed to install"
# pip install would normally generate [project.scripts] in ${bindir}
install -d ${D}/${bindir}
cat << EOF >> ${D}/${bindir}/wheel
#!/bin/sh
'''exec' ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} "\$0" "\$@"
' '''
# -*- coding: utf-8 -*-
import re
import sys
from wheel.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
EOF
chmod 0755 ${D}${bindir}/wheel
}
BBCLASSEXTEND = "native nativesdk"