Files

173 lines
6.9 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup python 1.0
PortGroup deprecated 1.0
deprecated.eol_version yes
name py27-pyqt5
python.rootname PyQt5
categories-append devel
maintainers nomaintainer
description PyQt5 is a set of Python bindings for the Qt5 toolkit
long_description {*}${description}. The bindings \
are implemented as a set of Python modules and contain over 620 classes.
homepage https://www.riverbankcomputing.com/software/pyqt/intro
license {GPL-3 OpenSSLException}
version 5.15.4
revision 2
checksums rmd160 c0f93412d4010e5e0d8e14e61af9579b66065bb4 \
sha256 2a69597e0dd11caabe75fae133feca66387819fc9bc050f547e5551bce97e5be \
size 3258085
python.versions 27
subport "${name}-common" {}
foreach py_ver ${python.versions} {
subport "py${py_ver}-pyqt5-webengine" {}
subport "py${py_ver}-pyqt5-chart" {}
}
if {${subport} eq "${name}-common"} {
description-append (.sip sourcefiles)
long_description-append This port contains the .sip source files.
platforms any
supported_archs noarch
depends_lib
use_configure no
build {}
destroot {
xinstall -m 0755 -d ${destroot}${prefix}/share/sip/PyQt5
# copy all relevant directories from ${worksrcpath}/sip into the destination.
# This is exactly what the regular build system does, except that here we
# use the same location as used on Linux, not the one hidden in the Python
# framework that is apparently the default on Mac.
file copy {*}[glob -directory ${worksrcpath}/sip/ Q*] ${destroot}${prefix}/share/sip/PyQt5
file copy ${worksrcpath}/sip/Enginio ${destroot}${prefix}/share/sip/PyQt5
}
} elseif {[string first "webengine" ${subport}] != -1 || [string first "chart" ${subport}] != -1} {
PortGroup qmake5 1.0
compiler.cxx_standard 2011
depends_lib-append port:py${python.version}-pyqt5
use_configure yes
configure.pre_args
configure.cmd "${python.bin} configure.py"
qt5.spec_cmd --spec=
configure.args-append \
-q ${qt_qmake_cmd} \
--verbose \
--sip=${prefix}/bin/sip-${python.branch} \
--no-qsci-api \
--no-dist-info
build.cmd make
build.target all
destroot.cmd ${build.cmd}
destroot.destdir DESTDIR=${destroot}
if {[string first "webengine" ${subport}] != -1} {
python.rootname PyQtWebEngine
version 5.15.5
revision 0
description PyQt5 Webengine bindings
long_description ${description}
checksums rmd160 de2dff392659b55265d4ef472d61ca75cceafda9 \
sha256 ab47608dccf2b5e4b950d5a3cc704b17711af035024d07a9b71ad29fc103b941 \
size 48610
qt5.depends_component \
qtwebengine
} elseif {[string first "chart" ${subport}] != -1} {
python.rootname PyQtChart
version 5.15.4
revision 0
description PyQt5 Charts bindings
long_description ${description}
checksums rmd160 d6177d643f23faeb557d17e0d6b77941d8d67a40 \
sha256 e47750632851e105eabc27fdfa8180989d120b822181e512f6643b3c5c4d8074 \
size 69252
qt5.depends_component \
qtcharts
}
} else {
PortGroup qmake5 1.0
compiler.cxx_standard 2011
# pull in the Qt5 meta-port
qt5.depends_component \
qtscript \
qt3d \
qt5
depends_lib-append port:py${python.version}-sip4 \
port:dbus-python${python.version} \
port:dbus \
port:py${python.version}-enum34
use_configure yes
configure.pre_args
configure.cmd "${python.bin} configure.py"
qt5.spec_cmd --spec=
configure.args-append \
-q ${qt_qmake_cmd} \
--verbose \
--confirm-license \
--sip=${prefix}/bin/sip-${python.branch} \
--dbus=${python.include}/dbus-1.0 \
--designer-plugindir=${qt_plugins_dir}/designer/Py${python.version}Qt5 \
--qml-plugindir=${qt_plugins_dir}/Py${python.version}Qt5 \
--no-qsci-api \
--disable=QtWebKit \
--disable=QtWebKitWidgets \
--no-dist-info \
--allow-sip-warnings
# using --dbus means the compiler will find dbus-python.h but not
# the DBus headers themselves
# do not clear include directories just because --dbus is given
patchfiles-append patch-dbus_includes.diff
# PyQt5 insists on using a private copy of sip, but the default sip seems to work just fine
# (actually, the insistence appears to be on sip using a private module directory;
# see the online pyqt5 build-from-source instructions).
patchfiles-append patch-use-default-sip.diff
build.cmd make
build.target all
destroot.cmd ${build.cmd}
destroot.destdir DESTDIR=${destroot}
variant debug description "Build debug libraries" {
configure.cmd-append --debug
}
variant scintilla description {Build the PyQt API for QScintilla} {
depends_lib-append port:qscintilla-qt5
configure.args-replace --no-qsci-api \
--qsci-api
post-destroot {
# move the Qsci API file to a Python specific name
# it is generated during the configure step and differs only
# (and slightly) for python 2.x vs. python 3.x .
# Figure out a way to install only a single copy...
move ${destroot}${qt_data_dir}/qsci/api/python/PyQt5.api \
${destroot}${qt_data_dir}/qsci/api/python/PyQt5-Python${python.branch}.api
}
}
variant webkit description {Build QtWebKit module} {
qt5.depends_component qtwebkit
configure.args-delete --disable=QtWebKit \
--disable=QtWebKitWidgets
}
variant graceful description {Don't abort (crash) on Python errors} {
patchfiles-append patch-no-abort-on-python-errors.diff
}
}