Files
MINGW-packages/mingw-w64-wxPython/PKGBUILD
Christoph Reiter f480ed432a wxPython: Update to 4.2.2 (#22690)
remove backports, included now
2024-11-28 21:52:36 +01:00

127 lines
3.9 KiB
Bash

# Maintainer: Alexey Pavlov <alexpux@gmail.com>
# Contributor: Tim Stahlhut <stahta01@gmail.com>
_wx_basever=3.2
_realname=wxPython
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=4.2.2
pkgrel=1
pkgdesc="A wxWidgets GUI toolkit for Python (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url="https://www.wxpython.org/"
msys2_repository_url="https://github.com/wxWidgets/Phoenix"
msys2_references=(
'archlinux: python-wxpython'
'pypi: wxPython'
)
license=('spdx:wxWindows')
depends=("${MINGW_PACKAGE_PREFIX}-python"
"${MINGW_PACKAGE_PREFIX}-python-numpy"
"${MINGW_PACKAGE_PREFIX}-python-pillow"
"${MINGW_PACKAGE_PREFIX}-python-six"
"${MINGW_PACKAGE_PREFIX}-wxmsw${_wx_basever}")
makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-waf"
"${MINGW_PACKAGE_PREFIX}-sip"
"${MINGW_PACKAGE_PREFIX}-python-build"
"${MINGW_PACKAGE_PREFIX}-python-requests"
"${MINGW_PACKAGE_PREFIX}-doxygen"
# for waf
"python"
"python-setuptools")
source=("https://pypi.org/packages/source/${_realname::1}/${_realname}/${_realname}-${pkgver}.tar.gz")
sha256sums=('5dbcb0650f67fdc2c5965795a255ffaa3d7b09fb149aa8da2d0d9aa44e38e2ba')
prepare() {
cd "${srcdir}/${_realname}-${pkgver}"
rm -f etg/{_,}webkit.py sip/gen/{_,}webkit.sip
# wxPython possible bug fixes 1xx
# backport wxPython git changes 4xx
# wxWidgets changes 2xx
cd "${srcdir}/${_realname}-${pkgver}/ext/wxWidgets"
# Reduce warnings
${MINGW_PREFIX}/bin/doxygen -u docs/doxygen/Doxyfile
}
build() {
rm -rf build-${MSYSTEM} | true
cp -r ${_realname}-${pkgver} build-${MSYSTEM} && cd build-${MSYSTEM}
declare -a _extra_config
if check_option "debug" "n"; then
_extra_config+=("--release")
else
_extra_config+=("--debug")
fi
export PYTHONDONTWRITEBYTECODE=1
local _jobs=${MAKEFLAGS:--j1}
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
WAF="${MINGW_PREFIX}/bin/waf" \
SIP="${MINGW_PREFIX}/bin/sip" \
DOXYGEN="${MINGW_PREFIX}/bin/doxygen" \
WX_CONFIG="${MINGW_PREFIX}/bin/wx-config-${_wx_basever}" \
${MINGW_PREFIX}/bin/python -m build \
--prefix="${MINGW_PREFIX}" \
--python="${MINGW_PREFIX}/bin/python.exe" \
${_extra_config[@]} \
--use_syswx \
--no_msedge \
--nodoc \
--cairo \
-vv \
--no_allmo \
--no_magic \
--regenerate_sysconfig \
--jobs=${_jobs#-j} \
dox sip
# Use MSYS2 Python because, with mingw-w64 Python, waf has issues using
# the wx-config* shell script.
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
CC_NAME=${CC} \
CC="${MINGW_PREFIX}/bin/${CC}.exe" \
CXX_NAME=${CXX} \
CXX="${MINGW_PREFIX}/bin/${CXX}.exe" \
LDFLAGS="${LDFLAGS} $(${MINGW_PREFIX}/bin/python-config --ldflags)" \
PYTHON_CONFIG="${MINGW_PREFIX}/bin/python-config" \
/usr/bin/python "${MINGW_PREFIX}/bin/waf" \
--prefix="${MINGW_PREFIX}" \
--python="${MINGW_PREFIX}/bin/python.exe" \
--no_msvc \
--check-c-compiler=${CC} \
--check-cxx-compiler=${CXX} \
--color=yes \
--jobs=${_jobs#-j} \
--wx_config="sh.exe ${MINGW_PREFIX}/bin/wx-config-${_wx_basever}" \
--no_magic \
--nopyc \
--nopyo \
--nopycache \
configure build
}
package() {
cd "${srcdir}/build-${MSYSTEM}"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
"${MINGW_PREFIX}/bin/python" setup.py install \
--prefix="${MINGW_PREFIX}" --root="${pkgdir}" --skip-build
MSYS2_ARG_CONV_EXCL="-p" python -m compileall \
-o 0 -o 1 -q -s"${pkgdir}" -p"/" "${pkgdir}${MINGW_PREFIX}/lib/python"*
# remove shebang line
for _f in "${pkgdir}${MINGW_PREFIX}"/bin/*-script.py; do
sed -e '1 { s/^#!.*$// }' -i ${_f}
done
install -vDm 644 LICENSE.txt "${pkgdir}"${MINGW_PREFIX}/share/licenses/$_realname/LICENSE.txt
}