blob: 227186b5a35cd28be06bd3897a9b54b5af0c8a06 [file] [log] [blame] [edit]
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=wxPython
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=4.1.1
pkgrel=1
pkgdesc="A wxWidgets GUI toolkit for Python (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
license=("custom:wxWindows")
url="https://www.wxpython.org/"
depends=("${MINGW_PACKAGE_PREFIX}-python"
$( [[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo \
"${MINGW_PACKAGE_PREFIX}-python-numpy" )
"${MINGW_PACKAGE_PREFIX}-python-pillow"
"${MINGW_PACKAGE_PREFIX}-python-six"
"${MINGW_PACKAGE_PREFIX}-wxWidgets3.1")
makedepends=("${MINGW_PACKAGE_PREFIX}-doxygen"
"${MINGW_PACKAGE_PREFIX}-python-requests"
"${MINGW_PACKAGE_PREFIX}-sip4"
"${MINGW_PACKAGE_PREFIX}-waf"
# for waf
"python" "python-setuptools")
options=('strip' 'staticlibs' 'buildflags')
source=("https://files.pythonhosted.org/packages/b0/4d/80d65c37ee60a479d338d27a2895fb15bbba27a3e6bb5b6d72bb28246e99/${_realname}-${pkgver}.tar.gz"
"0001-wxWidgets-win-from-cygwin.patch"
"0002-handle-cast.patch"
"0003-wxWidgets.Doxyfile.patch"
"0006-grid_h.patch"
"0100-wxPython-wxHandleFatalExceptions.patch")
noextract=("${_realname}-${pkgver}.tar.gz")
sha256sums=('00e5e3180ac7f2852f342ad341d57c44e7e4326de0b550b9a5c4a8361b6c3528'
'88cc6c7c9cdb6dd6f8e7a74356b275262f4e8d920d64bae987408ee2ff651bc1'
'7af6ee0a93cfd5d5a621ed09ba91a42a017c8c42a2ff4936b98bdf4014086359'
'f0216f2e38f338d52311a963b976f17998a4754b4c5ab2698074c08ab4104538'
'fc786aa69d9070ef0f8e4663798916323256f5c87ea9dd8cb12b68230eabddb8'
'f2416985340363453c44b62c659d378e345a1e1b28c2173bbad2671a751cf844')
prepare() {
plain "Extracting ${_realname}-${pkgver}.tar.gz due to symlink(s) without pre-existing target(s)"
cd "${srcdir}"
[[ -d ${_realname}-${pkgver} ]] && rm -rf ${_realname}-${pkgver}
tar zxf "${srcdir}/${_realname}-${pkgver}.tar.gz" || true
cd "${srcdir}/${_realname}-${pkgver}"
rm -f etg/{_,}webkit.py sip/gen/{_,}webkit.sip
patch -Np1 -i "${srcdir}/0001-wxWidgets-win-from-cygwin.patch"
# clang doesn't like casting from pointer to smaller integer type (long)
# https://github.com/wxWidgets/Phoenix/pull/1972
patch -Np1 -i "${srcdir}/0002-handle-cast.patch"
patch -Np1 -i "${srcdir}/0003-wxWidgets.Doxyfile.patch"
patch -Np1 -i "${srcdir}/0006-grid_h.patch"
# https://github.com/wxWidgets/Phoenix/commit/3500ac7a9e7377c154a507dd7ea1b5b7bfda8c09
patch -Np1 -i "${srcdir}/0100-wxPython-wxHandleFatalExceptions.patch"
}
build() {
cd "${srcdir}/${_realname}-${pkgver}"
export PYTHONDONTWRITEBYTECODE=1
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-3.1" \
"${MINGW_PREFIX}/bin/python" build.py \
--prefix="${MINGW_PREFIX}" --python="${MINGW_PREFIX}/bin/python.exe" \
--release --use_syswx --no_msedge --nodoc --cairo --verbose \
--no_allmo --no_magic --regenerate_sysconfig \
dox touch etg sip
local _jobs=${MAKEFLAGS:--j1}
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
CC_NAME=${CC} CXX_NAME=${CXX} \
LDFLAGS="${LDFLAGS} $(python-config --ldflags)" \
PYTHON_CONFIG="${MINGW_PREFIX}/bin/python-config" \
"${MINGW_PREFIX}/bin/waf" \
--prefix="${MINGW_PREFIX}" --python="${MINGW_PREFIX}/bin/python.exe" \
--check-cxx-compiler=${CXX} --check-c-compiler=${CC} --color=yes --jobs=${_jobs#-j} \
--wx_config=wx-config-3.1 \
--no_magic --nopyc --nopyo --nopycache \
configure build
}
package() {
cd "${srcdir}/${_realname}-${pkgver}"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
"${MINGW_PREFIX}/bin/python" setup.py install \
--prefix="${MINGW_PREFIX}" --root="${pkgdir}" --skip-build
# 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"
}