This allows us to include a version and we already use PURL for other things, so might as well remove the pypi special case. Normalize the names, since that is required for PURLs.
127 lines
3.9 KiB
Bash
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'
|
|
'purl: pkg: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
|
|
}
|