mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-11 06:10:06 +02:00
272 lines
8.4 KiB
Bash
272 lines
8.4 KiB
Bash
SUMMARY="Python v2 and v3 bindings for Qt application framework"
|
|
DESCRIPTION="PyQt combines all the advantages of Qt and Python. A programmer \
|
|
has all the power of Qt, but is able to exploit it with the \
|
|
simplicity of Python."
|
|
HOMEPAGE="http://www.riverbankcomputing.com/software/pyqt/"
|
|
COPYRIGHT="2015-2019 Riverbank Computing Limited"
|
|
LICENSE="GNU GPL v3"
|
|
REVISION="2"
|
|
SOURCE_URI="https://www.riverbankcomputing.com/static/Downloads/PyQt5/$portVersion/PyQt5_gpl-$portVersion.tar.gz"
|
|
CHECKSUM_SHA256="54b7f456341b89eeb3930e786837762ea67f235e886512496c4152ebe106d4af"
|
|
SOURCE_DIR="PyQt5_gpl-$portVersion"
|
|
PYTHON3_VERSION="3.7"
|
|
|
|
ARCHITECTURES="!x86_gcc2 x86 x86_64"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
commandSuffix=$secondaryArchSuffix
|
|
commandBinDir=$binDir
|
|
if [ "$targetArchitecture" = x86_gcc2 ]; then
|
|
commandSuffix=
|
|
commandBinDir=$prefix/bin
|
|
fi
|
|
|
|
portVersionCompat="$portVersion compat >= ${portVersion%%.*}"
|
|
qtVersion="${portVersion%.*}"
|
|
|
|
PROVIDES="
|
|
pyqt${secondaryArchSuffix} = $portVersionCompat
|
|
"
|
|
REQUIRES="
|
|
haiku${secondaryArchSuffix}
|
|
lib:libQt5Bluetooth$secondaryArchSuffix
|
|
lib:libQt5Core$secondaryArchSuffix
|
|
lib:libQt5Designer$secondaryArchSuffix
|
|
lib:libQt5DBus$secondaryArchSuffix
|
|
lib:libQt5Gui$secondaryArchSuffix
|
|
lib:libQt5Help$secondaryArchSuffix
|
|
lib:libQt5Location$secondaryArchSuffix
|
|
lib:libQt5Multimedia$secondaryArchSuffix
|
|
lib:libQt5MultimediaWidgets$secondaryArchSuffix
|
|
lib:libQt5Network$secondaryArchSuffix
|
|
lib:libQt5Nfc$secondaryArchSuffix
|
|
# lib:libQt5OpenGL$secondaryArchSuffix
|
|
lib:libQt5PrintSupport$secondaryArchSuffix
|
|
lib:libQt5Positioning$secondaryArchSuffix
|
|
lib:libQt5Qml$secondaryArchSuffix
|
|
lib:libQt5Quick$secondaryArchSuffix
|
|
lib:libQt5QuickWidgets$secondaryArchSuffix
|
|
lib:libQt5Sensors$secondaryArchSuffix
|
|
lib:libQt5SerialPort$secondaryArchSuffix
|
|
lib:libQt5Sql$secondaryArchSuffix
|
|
lib:libQt5Svg$secondaryArchSuffix
|
|
lib:libQt5Test$secondaryArchSuffix
|
|
lib:libQt5WebChannel$secondaryArchSuffix
|
|
lib:libQt5WebKit$secondaryArchSuffix
|
|
lib:libQt5WebKitWidgets$secondaryArchSuffix
|
|
lib:libQt5WebSockets$secondaryArchSuffix
|
|
lib:libQt5Widgets$secondaryArchSuffix
|
|
lib:libQt5Xml$secondaryArchSuffix
|
|
lib:libQt5XmlPatterns$secondaryArchSuffix
|
|
# lib:libGL${secondaryArchSuffix}
|
|
"
|
|
|
|
PROVIDES_python="
|
|
pyqt${secondaryArchSuffix}_python = $portVersionCompat
|
|
python_pyqt${secondaryArchSuffix}
|
|
cmd:python2_pylupdate5$commandSuffix
|
|
cmd:python2_pyrcc5$commandSuffix
|
|
cmd:python2_pyuic5$commandSuffix
|
|
"
|
|
REQUIRES_python="
|
|
pyqt$secondaryArchSuffix == $portVersion base
|
|
enum34_python
|
|
sip_pyqt_python >= 4.19.19
|
|
cmd:python2
|
|
$REQUIRES
|
|
"
|
|
REPLACES_python="
|
|
python_pyqt${secondaryArchSuffix}
|
|
"
|
|
|
|
PROVIDES_python3="
|
|
pyqt${secondaryArchSuffix}_python3 = $portVersionCompat
|
|
python3_pyqt${secondaryArchSuffix}
|
|
cmd:pylupdate5$commandSuffix
|
|
cmd:pyrcc5$commandSuffix
|
|
cmd:pyuic5$commandSuffix
|
|
"
|
|
REQUIRES_python3="
|
|
haiku${secondaryArchSuffix}
|
|
pyqt$secondaryArchSuffix == $portVersion base
|
|
sip_pyqt_python3 >= 4.19.19
|
|
cmd:python$PYTHON3_VERSION
|
|
$REQUIRES
|
|
"
|
|
REPLACES_python3="
|
|
python3_pyqt${secondaryArchSuffix}
|
|
"
|
|
|
|
if [ "$targetArchitecture" = "x86_gcc2" ]; then
|
|
PROVIDES_python+="
|
|
pyqt_python = $portVersionCompat
|
|
"
|
|
|
|
PROVIDES_python3+="
|
|
pyqt_python3 = $portVersionCompat
|
|
"
|
|
fi
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
enum34_python
|
|
setuptools_python
|
|
sip_pyqt_python >= 4.19.19
|
|
setuptools_python3
|
|
sip_pyqt_python3 >= 4.19.19
|
|
devel:libQt5Bluetooth$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Core$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Designer$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5DBus$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Gui$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Help$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Location$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Multimedia$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5MultimediaWidgets$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Network$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Nfc$secondaryArchSuffix >= $qtVersion
|
|
# devel:libQt5OpenGL$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5PrintSupport$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Positioning$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Qml$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Quick$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5QuickWidgets$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Sensors$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5SerialPort$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Sql$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Svg$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Test$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5WebChannel$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5WebKit$secondaryArchSuffix
|
|
devel:libQt5WebKitWidgets$secondaryArchSuffix
|
|
devel:libQt5WebSockets$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Widgets$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5Xml$secondaryArchSuffix >= $qtVersion
|
|
devel:libQt5XmlPatterns$secondaryArchSuffix >= $qtVersion
|
|
# devel:libGL${secondaryArchSuffix}
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:python2
|
|
cmd:python$PYTHON3_VERSION
|
|
cmd:gcc${secondaryArchSuffix}
|
|
cmd:make
|
|
cmd:ld${secondaryArchSuffix}
|
|
cmd:sip
|
|
cmd:qmake${secondaryArchSuffix} >= 5
|
|
"
|
|
|
|
PATCH()
|
|
{
|
|
# disable checking for sip, since it doesn't work for python2 as __init__.py
|
|
# is not provided by sip.
|
|
sed -i 's|from PyQt5 import sip|pass|g' configure.py
|
|
}
|
|
|
|
BUILD()
|
|
{
|
|
OLDPYTHONPATH=$PYTHONPATH
|
|
cp -R $sourceDir ${sourceDir}_build
|
|
cp -R $sourceDir ${sourceDir}_build3
|
|
|
|
local packageLinksDir=$(dirname $portPackageLinksDir)
|
|
local pythonPackageName="${portName}_python-$portFullVersion"
|
|
local python3PackageName="${portName}_python3-$portFullVersion"
|
|
|
|
cd ${sourceDir}_build
|
|
# GENERIC: all python_setuptools-based installs need this
|
|
python=$packageLinksDir/$pythonPackageName/cmd~python2/bin/python2
|
|
pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3)
|
|
installLocation=$prefix/lib/python$pythonVersion/vendor-packages/
|
|
export PYTHONPATH=$installLocation:$OLDPYTHONPATH
|
|
|
|
$python configure.py \
|
|
--confirm-license \
|
|
--no-designer-plugin \
|
|
--no-qml-plugin \
|
|
--bindir=$commandBinDir \
|
|
--destdir=$installLocation \
|
|
--sipdir=$dataDir/sip/PyQt5 \
|
|
--sip=$portPackageLinksDir/cmd~sip/bin/sip \
|
|
--stubsdir=$installLocation/PyQt5 \
|
|
--no-dist-info \
|
|
--disable=QtOpenGL \
|
|
--disable=_QOpenGLFunctions_2_0 \
|
|
--disable=_QOpenGLFunctions_2_1 \
|
|
--disable=_QOpenGLFunctions_4_1_Core \
|
|
--verbose
|
|
|
|
make $jobArgs
|
|
|
|
cd ${sourceDir}_build3
|
|
|
|
# GENERIC: all python_setuptools-based installs need this
|
|
python=$packageLinksDir/$python3PackageName/cmd~python$PYTHON3_VERSION/bin/python3
|
|
pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3)
|
|
installLocation=$prefix/lib/python$pythonVersion/vendor-packages/
|
|
export PYTHONPATH=$installLocation:$OLDPYTHONPATH
|
|
|
|
$python configure.py \
|
|
--confirm-license \
|
|
--no-designer-plugin \
|
|
--no-qml-plugin \
|
|
--bindir=$commandBinDir \
|
|
--destdir=$installLocation \
|
|
--sipdir=$dataDir/sip/PyQt5 \
|
|
--sip=$portPackageLinksDir/cmd~sip/bin/sip \
|
|
--stubsdir=$installLocation/PyQt5 \
|
|
--no-dist-info \
|
|
--disable=QtOpenGL \
|
|
--disable=_QOpenGLFunctions_2_0 \
|
|
--disable=_QOpenGLFunctions_2_1 \
|
|
--disable=_QOpenGLFunctions_4_1_Core \
|
|
#--verbose
|
|
|
|
make $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
OLDPYTHONPATH=$PYTHONPATH
|
|
|
|
local packageLinksDir=$(dirname $portPackageLinksDir)
|
|
local pythonPackageName="${portName}_python-$portFullVersion"
|
|
local python3PackageName="${portName}_python3-$portFullVersion"
|
|
|
|
cd ${sourceDir}_build
|
|
# GENERIC: all python_setuptools-based installs need this
|
|
python=$packageLinksDir/$pythonPackageName/cmd~python2/bin/python2
|
|
pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3)
|
|
installLocation=$prefix/lib/python$pythonVersion/vendor-packages/
|
|
export PYTHONPATH=$installLocation:$OLDPYTHONPATH
|
|
|
|
mkdir -p $installLocation
|
|
make install
|
|
|
|
for file in pylupdate5 pyrcc5 pyuic5; do
|
|
mv $commandBinDir/$file $commandBinDir/python2-$file
|
|
done
|
|
|
|
packageEntries python \
|
|
$installLocation \
|
|
$commandBinDir/python2*
|
|
|
|
rmdir $prefix/lib/python$pythonVersion
|
|
|
|
cd ${sourceDir}_build3
|
|
# GENERIC: all python_setuptools-based installs need this
|
|
python=$packageLinksDir/$python3PackageName/cmd~python$PYTHON3_VERSION/bin/python3
|
|
pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3)
|
|
installLocation=$prefix/lib/python$pythonVersion/vendor-packages/
|
|
export PYTHONPATH=$installLocation:$OLDPYTHONPATH
|
|
|
|
mkdir -p $installLocation
|
|
make install
|
|
|
|
packageEntries python3 \
|
|
$installLocation \
|
|
$commandBinDir
|
|
|
|
rmdir $prefix/lib/python$pythonVersion
|
|
|
|
}
|