summaryrefslogtreecommitdiff
path: root/Mk/Uses/pyqt.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/Uses/pyqt.mk')
-rw-r--r--Mk/Uses/pyqt.mk227
1 files changed, 100 insertions, 127 deletions
diff --git a/Mk/Uses/pyqt.mk b/Mk/Uses/pyqt.mk
index 03f620b84628..3463944c435b 100644
--- a/Mk/Uses/pyqt.mk
+++ b/Mk/Uses/pyqt.mk
@@ -29,61 +29,88 @@ _INCLUDE_USES_PYQT_MK= yes
# option is for internal use by the py-sip ports.
_PYQT_SUPPORTED= 5 sip
-.if empty(pyqt_ARGS)
+. if empty(pyqt_ARGS)
IGNORE= pyqt needs a qt-version (${_PYQT_SUPPORTED})
-.endif
+. endif
# At the moment we support PyQt bindings versions 5
-.for ver in ${_PYQT_SUPPORTED:O:u}
-. if ${pyqt_ARGS:M${ver}}
-. if empty(_PYQT_VERSION)
+. for ver in ${_PYQT_SUPPORTED:O:u}
+. if ${pyqt_ARGS:M${ver}}
+. if empty(_PYQT_VERSION)
_PYQT_VERSION= ${ver}
-. else
+. else
IGNORE?= cannot be installed: different PYQT versions specified via pyqt:[${_PYQT_SUPPORTED:S/ //g}]
+. endif
. endif
-. endif
-.endfor
+. endfor
-.if empty(_PYQT_VERSION)
+. if empty(_PYQT_VERSION)
IGNORE?= USES=pyqt needs a version number (valid values: ${_PYQT_SUPPORTED})
_PYQT_VERSION= 0
-.endif
+. endif
PYQT_MAINTAINER= kde@FreeBSD.org
MASTER_SITE_RIVERBANK= https://www.riverbankcomputing.com/static/Downloads/%SUBDIR%/
+#MASTER_SITES_SIP= https://pypi.python.org/packages/source/s/sip/
# https://www.riverbankcomputing.com/static/Downloads/sip/4.19.15/sip-4.19.15.tar.gz
-MASTER_SITES_SIP= RIVERBANK/sip/${PORTVERSION} \
- SF/pyqt/sip/sip-${PORTVERSION} \
- GENTOO
-MASTER_SITES_PYQT5= RIVERBANK/PyQt5/${PORTVERSION} \
- SF/pyqt/PyQt5/PyQt-${PORTVERSION} \
- GENTOO
+MASTER_SITES_SIP= RIVERBANK/sip/${PORTVERSION} \
+ SF/pyqt/sip/sip-${PORTVERSION} \
+ GENTOO
+MASTER_SITES_PYQT5= https://pypi.python.org/packages/source/P/PyQt5/
+MASTER_SITES_PYQTSIP= https://pypi.python.org/packages/source/P/PyQt5-sip/
+MASTER_SITES_PYQTCHART= https://pypi.python.org/packages/source/P/PyQtChart/
#https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.11.4/QScintilla-2.11.4.tar.gz
MASTER_SITES_QSCI2= RIVERBANK/QScintilla/${PORTVERSION} \
SF/pyqt/QScintilla2/QScintilla-${PORTVERSION} \
GENTOO
-SIP_VERSION= 4.19.21
-QSCI2_VERSION= 2.11.4
-PYQT5_VERSION= 5.13.1
+SIP_VERSION= 4.19.24
+QSCI2_VERSION= 2.11.5
+PYQT5_VERSION= 5.15.0
+PYQTSIP_VERSION= 12.8.0
SIP_DISTNAME= sip-${SIP_VERSION}
-PYQT5_DISTNAME= PyQt5_gpl-${PYQT5_VERSION}
+PYQT5_DISTNAME= PyQt5-${PYQT5_VERSION}
+PYQTSIP_DISTNAME= PyQt5_sip-${PYQTSIP_VERSION}
+PYQTCHART_DISTNAME= PyQtChart-${PYQT_VERSION}
PYQT5_DISTINFO_FILE= ${.CURDIR:H:H}/devel/${PYQT_RELNAME}/distinfo
QSCI2_DISTNAME= QScintilla-${QSCI2_VERSION}
PYQT5_LICENSE= GPLv3
+_USE_PYQT_COMMS= sensors serialport
+_USE_PYQT_DATABASES= sql
+_USE_PYQT_DEVEL= core dbus dbussupport help location \
+ designer designerplugin remoteobjects test
+_USE_PYQT_GRAPHICS= svg
+_USE_PYQT_LANG= qml
+_USE_PYQT_MISC= demo
+_USE_PYQT_MULTIMEDIA= multimedia multimediawidgets
+_USE_PYQT_NET= network networkauth
+_USE_PYQT_PRINT= printsupport
+_USE_PYQT_TEXTPROC= xml xmlpatterns
+_USE_PYQT_WWW= webchannel webengine webkit webkitwidgets websockets
+_USE_PYQT_X11= opengl
+_USE_PYQT_X11-TOOLKITS= chart gui widgets quick quick3d quickwidgets
+
# Keep these synchronized with OPTIONS_DEFINE in devel/py-qt5
# PyQt components split up into pyqt5/...
-_USE_PYQT_ALL= core dbus dbussupport demo designer designerplugin \
- gui help multimedia network opengl qscintilla2 \
- sql svg test webkit xml xmlpatterns sip
-# List of components only in pyqt5
-_USE_PYQT5_ONLY= multimediawidgets printsupport qml quickwidgets \
- serialport webchannel webengine webkitwidgets \
- websockets widgets
+_USE_PYQT_ALL= ${_USE_PYQT_COMMS} \
+ ${_USE_PYQT_DATABASES} \
+ ${_USE_PYQT_DEVEL} \
+ ${_USE_PYQT_GRAPHICS} \
+ ${_USE_PYQT_LANG} \
+ ${_USE_PYQT_MISC} \
+ ${_USE_PYQT_MULTIMEDIA} \
+ ${_USE_PYQT_NET} \
+ ${_USE_PYQT_PRINT} \
+ ${_USE_PYQT_TEXTPROC} \
+ ${_USE_PYQT_WWW} \
+ ${_USE_PYQT_X11} \
+ ${_USE_PYQT_X11-TOOLKITS}
+_USE_SIP_ALL= sip # pysip
+_USE_QSCINTILLA= qscintilla2
# Unversioned variables for the rest of the file
PYQT_VERSION= ${PYQT${_PYQT_VERSION}_VERSION}
@@ -94,117 +121,62 @@ PYQT_DISTNAME= ${PYQT${_PYQT_VERSION}_DISTNAME}
PYQT_DISTINFO_FILE= ${PYQT${_PYQT_VERSION}_DISTINFO_FILE}
PYQT_LICENSE= ${PYQT${_PYQT_VERSION}_LICENSE}
+# PATH
py-sip_PATH= ${PYTHON_PKGNAMEPREFIX}sip>=${SIP_VERSION}
-
-py-assistant_PATH= ${PYQT_PY_RELNAME}-assistant>=${PYQT_VERSION}
-py-core_PATH= ${PYQT_PY_RELNAME}-core>=${PYQT_VERSION}
-py-dbus_PATH= ${PYQT_PY_RELNAME}-dbus>=${PYQT_VERSION}
-py-dbussupport_PATH= ${PYQT_PY_RELNAME}-dbussupport>=${PYQT_VERSION}
-py-declarative_PATH= ${PYQT_PY_RELNAME}-declarative>=${PYQT_VERSION}
-py-demo_PATH= ${PYQT_PY_RELNAME}-demo>=${PYQT_VERSION}
-py-designer_PATH= ${PYQT_PY_RELNAME}-designer>=${PYQT_VERSION}
-py-designerplugin_PATH= ${PYQT_PY_RELNAME}-designerplugin>=${PYQT_VERSION}
-py-doc_PATH= ${PYQT_PY_RELNAME}-doc>=${PYQT_VERSION}
-py-gui_PATH= ${PYQT_PY_RELNAME}-gui>=${PYQT_VERSION}
-py-help_PATH= ${PYQT_PY_RELNAME}-help>=${PYQT_VERSION}
-py-multimedia_PATH= ${PYQT_PY_RELNAME}-multimedia>=${PYQT_VERSION}
-py-network_PATH= ${PYQT_PY_RELNAME}-network>=${PYQT_VERSION}
-py-opengl_PATH= ${PYQT_PY_RELNAME}-opengl>=${PYQT_VERSION}
-py-phonon_PATH= ${PYQT_PY_RELNAME}-phonon>=${PYQT_VERSION}
+# py-pysip_PATH= ${PYQT_PY_RELNAME}-sip>=${PYQTSIP_VERSION}
py-qscintilla2_PATH= ${PYQT_PY_RELNAME}-qscintilla2>=${QSCI2_VERSION}
-py-script_PATH= ${PYQT_PY_RELNAME}-script>=${PYQT_VERSION}
-py-scripttools_PATH= ${PYQT_PY_RELNAME}-scripttools>=${PYQT_VERSION}
-py-sql_PATH= ${PYQT_PY_RELNAME}-sql>=${PYQT_VERSION}
-py-svg_PATH= ${PYQT_PY_RELNAME}-svg>=${PYQT_VERSION}
-py-test_PATH= ${PYQT_PY_RELNAME}-test>=${PYQT_VERSION}
-py-webchannel_PATH= ${PYQT_PY_RELNAME}-webchannel>=${PYQT_VERSION}
-py-webengine_PATH= ${PYQT_PY_RELNAME}-webengine>=5.12.1
-py-webkit_PATH= ${PYQT_PY_RELNAME}-webkit>=${PYQT_VERSION}
-py-websockets_PATH= ${PYQT_PY_RELNAME}-websockets>=${PYQT_VERSION}
-py-xml_PATH= ${PYQT_PY_RELNAME}-xml>=${PYQT_VERSION}
-py-xmlpatterns_PATH= ${PYQT_PY_RELNAME}-xmlpatterns>=${PYQT_VERSION}
-py-multimediawidgets_PATH= ${PYQT_PY_RELNAME}-multimediawidgets>=${PYQT_VERSION}
-py-qml_PATH= ${PYQT_PY_RELNAME}-qml>=${PYQT_VERSION}
-py-quickwidgets_PATH= ${PYQT_PY_RELNAME}-quickwidgets>=${PYQT_VERSION}
-py-printsupport_PATH= ${PYQT_PY_RELNAME}-printsupport>=${PYQT_VERSION}
-py-serialport_PATH= ${PYQT_PY_RELNAME}-serialport>=${PYQT_VERSION}
-py-webkitwidgets_PATH= ${PYQT_PY_RELNAME}-webkitwidgets>=${PYQT_VERSION}
-py-widgets_PATH= ${PYQT_PY_RELNAME}-widgets>=${PYQT_VERSION}
+. for _component in ${_USE_PYQT_ALL}
+py-${_component}_PATH?=${PYQT_PY_RELNAME}-${_component}>=${PYQT_VERSION}
+. endfor
+# PORT
py-sip_PORT= devel/py-sip
-
-py-assistant_PORT= devel/${PYQT_RELNAME}-assistant
-py-core_PORT= devel/${PYQT_RELNAME}-core
-py-dbus_PORT= devel/${PYQT_RELNAME}-dbus
-py-dbussupport_PORT= devel/${PYQT_RELNAME}-dbussupport
-py-declarative_PORT= devel/${PYQT_RELNAME}-declarative
-py-demo_PORT= misc/${PYQT_RELNAME}-demo
-py-designer_PORT= devel/${PYQT_RELNAME}-designer
-py-designerplugin_PORT= devel/${PYQT_RELNAME}-designerplugin
-py-doc_PORT= misc/${PYQT_RELNAME}-doc
-py-gui_PORT= x11-toolkits/${PYQT_RELNAME}-gui
-py-help_PORT= devel/${PYQT_RELNAME}-help
-py-multimedia_PORT= multimedia/${PYQT_RELNAME}-multimedia
-py-network_PORT= net/${PYQT_RELNAME}-network
-py-opengl_PORT= x11/${PYQT_RELNAME}-opengl
-py-phonon_PORT= multimedia/${PYQT_RELNAME}-phonon
+# py-pysip_PORT= devel/${PYQT_RELNAME}-sip
py-qscintilla2_PORT= devel/${PYQT_RELNAME}-qscintilla2
-py-script_PORT= devel/${PYQT_RELNAME}-script
-py-scripttools_PORT= devel/${PYQT_RELNAME}-scripttools
-py-sql_PORT= databases/${PYQT_RELNAME}-sql
-py-svg_PORT= graphics/${PYQT_RELNAME}-svg
-py-test_PORT= devel/${PYQT_RELNAME}-test
-py-webchannel_PORT= www/${PYQT_RELNAME}-webchannel
-py-webengine_PORT= www/${PYQT_RELNAME}-webengine
-py-webkit_PORT= www/${PYQT_RELNAME}-webkit
-py-websockets_PORT= www/${PYQT_RELNAME}-websockets
-py-xml_PORT= textproc/${PYQT_RELNAME}-xml
-py-xmlpatterns_PORT= textproc/${PYQT_RELNAME}-xmlpatterns
-py-multimediawidgets_PORT= multimedia/py-qt5-multimediawidgets
-py-qml_PORT= lang/py-qt5-qml
-py-quickwidgets_PORT= x11-toolkits/py-qt5-quickwidgets
-py-printsupport_PORT= print/py-qt5-printsupport
-py-serialport_PORT= comms/py-qt5-serialport
-py-webkitwidgets_PORT= www/py-qt5-webkitwidgets
-py-widgets_PORT= x11-toolkits/py-qt5-widgets
+. for _categorie in comms databases devel graphics lang misc multimedia net print textproc www x11 x11-toolkits
+_PYQT_CATEGORIE= _USE_PYQT_${_categorie:tu}
+. for _component in ${${_PYQT_CATEGORIE}}
+py-${_component}_PORT?=${_categorie}/${PYQT_RELNAME}-${_component}
+. endfor
+. endfor
-py-assistant_DESC= Python bindings for QtAssistant module
py-core_DESC= Python bindings for QtCore module
+py-chart_DESC= Python bindings for QtChart module
py-dbus_DESC= Python bindings for QtDBus module
py-dbussupport_DESC= Qt event loop support for dbus-python
-py-declarative_DESC= Python bindings for QtDeclarative module
py-demo_DESC= PyQt demo and examples
py-designer_DESC= Python bindings for QtDesigner module
py-designerplugin_DESC= Python bindings for QtDesigner plugin
-py-doc_DESC= PyQt documentation
py-gui_DESC= Python bindings for QtGui module
py-help_DESC= Python bindings for QtHelp module
+py-location_DESC= Python bindings for Location module
py-multimedia_DESC= Python bindings for Multimedia module
+py-multimediawidgets_DESC= Python bindings for QtMultimediaWidgets module
py-network_DESC= Python bindings for QtNetwork module
+py-networkauth_DESC= Python bindings for QtNetworkAuth module
py-opengl_DESC= Python bindings for QtOpenGL module
-py-phonon_DESC= Python bindings for Phonon module
+py-printsupport_DESC= Python bindings for Printsupport module
+py-qml_DESC= Python bindings for Qml module
py-qscintilla2_DESC= Python bindings for QScintilla2
-py-script_DESC= Python bindings for QtScript module
-py-scripttools_DESC= Python bindings for QtScriptTools module
+py-quick_DESC= Python bindings for QtQuick module
+py-quick3d_DESC= Python bindings for QtQuick3D module
+py-quickwidgets_DESC= Python bindings for QtQuickWidgets module
+py-remoteobjects_DESC= Python bindings for QtRemoteObjects module
py-sip_DESC= Python bindings generator for C and C++ libraries
+py-sensors_DESC= Python bindings for QtSensors
+py-serialport_DESC= Python bindings for QtSerialPort
py-sql_DESC= Python bindings for QtSql module
py-svg_DESC= Python bindings for QtSvg module
py-test_DESC= Python bindings for QtTest module
py-webchannel_DESC= Python bindings for QtWebChannel module
py-webengine_DESC= Python bindings for QtWebEngine module
py-webkit_DESC= Python bindings for QtWebKit module
-py-xml_DESC= Python bindings for QtXml module
-py-xmlpatterns_DESC= Python bindings for QtXmlPatterns module
-
-py-multimediawidgets_DESC= Python bindings for QtMultimediaWidgets module
-py-qml_DESC= Python bindings for Qml module
-py-quickwidgets_DESC= Python bindings for QtQuickWidgets module
-py-printsupport_DESC= Python bindings for Printsupport module
-py-serialport_DESC= Python bindings for QtSerialPort
py-webkitwidgets_DESC= Python bindings for QtWebKitWidgets module
py-widgets_DESC= Python bindings for QTWidgets module
+py-xml_DESC= Python bindings for QtXml module
+py-xmlpatterns_DESC= Python bindings for QtXmlPatterns module
# The versionned executable of sip
SIP= ${LOCALBASE}/bin/sip-${PYTHON_VER}
@@ -236,7 +208,7 @@ PLIST_SUB+= PYQT_APIDIR=${_APIDIR_REL} \
PYQT_QSCIVERSION=${QSCI2_VERSION} \
PYQT_PYQTVERSION=${PYQT_VERSION}
-.if defined(PYQT_DIST)
+. if defined(PYQT_DIST)
PORTVERSION= ${PYQT_VERSION}
MASTER_SITES= ${PYQT_MASTERSITES}
PKGNAMEPREFIX= ${PYQT_PY_RELNAME}-
@@ -245,13 +217,13 @@ DISTINFO_FILE= ${PYQT_DISTINFO_FILE}
LICENSE?= ${PYQT_LICENSE}
HAS_CONFIGURE= yes
-.if ${_PYQT_VERSION} > 4
+. if ${_PYQT_VERSION} > 4
# PyQt5's configure.py generates .pro files and calls qmake to generate the
# Makefiles. qmake's Makefiles use INSTALL_ROOT instead of DESTDIR.
DESTDIRNAME= INSTALL_ROOT
# Limit PyQt5's version to the Qt5 version in ports
PORTSCOUT?= limit:^${_QT_VERSION:R}
-.endif
+. endif
PATCHDIR= ${.CURDIR}/../../devel/${PYQT_RELNAME}-core/files
CONFIGURE_ARGS+=-b ${PREFIX}/bin \
@@ -260,31 +232,32 @@ CONFIGURE_ARGS+=-b ${PREFIX}/bin \
--confirm-license \
--sip ${SIP} \
--sipdir ${PYQT_SIPDIR}
-.if ${_PYQT_VERSION:M5}
+. if ${_PYQT_VERSION:M5}
# Move the designer plugin and qml libraries to versioned folders.
CONFIGURE_ARGS+=--qml-plugindir ${PYQT_QMLDIR} \
--designer-plugindir ${PYQT_DESIGNERDIR}
# Further do not gernate the dinstinfo files.
CONFIGURE_ARGS+=--no-dist-info
-.endif
+. endif
# One of the things PyQt looks for to determine whether to build the Qt DBus
# main loop module (${PYQT_RELNAME}-dbussupport) is whether the dbus/ directory is
# present. Only extract it for that port then.
-.if ${PORTNAME} != "dbussupport"
+. if ${PORTNAME} != "dbussupport"
EXTRACT_AFTER_ARGS+= --exclude "${DISTNAME}/dbus"
-.endif # ${PORTNAME} != "dbussupport"
+. endif # ${PORTNAME} != "dbussupport"
-.if !target(do-configure)
+. if !target(do-configure)
do-configure:
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \
${PYTHON_CMD} configure.py ${CONFIGURE_ARGS}
-.endif # !target(do-configure)
-.endif # defined(PYQT_DIST)
+. endif # !target(do-configure)
+. endif # defined(PYQT_DIST)
# Set build, run and test depends -- we need to prefix them internally with "py-"
# else we conflict with the ones defined in bsd.qt.mk with the same name
-_USE_PYQT_ALL+= ${_USE_PYQT${_PYQT_VERSION}_ONLY}
-.for comp in ${_USE_PYQT_ALL:O:u}
+_USE_PYQT_ALL+= ${_USE_SIP_ALL} \
+ ${_USE_QSCINTILLA}
+. for comp in ${_USE_PYQT_ALL:O:u}
_USE_PYQT_ALL_SUFFIXED+= py-${comp} py-${comp}_build py-${comp}_run py-${comp}_test
py-${comp}_BUILD_DEPENDS?= ${py-${comp}_PATH}:${py-${comp}_PORT}@${PY_FLAVOR}
py-${comp}_RUN_DEPENDS?= ${py-${comp}_PATH}:${py-${comp}_PORT}@${PY_FLAVOR}
@@ -292,17 +265,17 @@ py-${comp}_TEST_DEPENDS?= ${py-${comp}_PATH}:${py-${comp}_PORT}@${PY_FLAVOR}
py-${comp}_build_BUILD_DEPENDS?= ${py-${comp}_BUILD_DEPENDS}
py-${comp}_run_RUN_DEPENDS?= ${py-${comp}_RUN_DEPENDS}
py-${comp}_test_TEST_DEPENDS?= ${py-${comp}_TEST_DEPENDS}
-.endfor
+. endfor
_USE_PYQT= ${USE_PYQT:O:u}
-.for comp in ${_USE_PYQT}
-. if ${_USE_PYQT_ALL_SUFFIXED:Mpy-${comp}}
+. for comp in ${_USE_PYQT}
+. if ${_USE_PYQT_ALL_SUFFIXED:Mpy-${comp}}
BUILD_DEPENDS+= ${py-${comp}_BUILD_DEPENDS}
RUN_DEPENDS+= ${py-${comp}_RUN_DEPENDS}
TEST_DEPENDS+= ${py-${comp}_TEST_DEPENDS}
-. else
+. else
IGNORE?= cannot be installed: unknown USE_PYQT component ${comp} #'
-. endif
-.endfor
+. endif
+. endfor
.endif # defined(_INCLUDE_USES_PYQT_MK)