1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-28 05:29:48 +00:00
freebsd-ports/devel/py-qt4/bsd.pyqt.mk
Raphael Kubo da Costa c3f9087c48 Update PyQt to 4.11.1, QScintilla to 2.8.3 and SIP to 4.16.2.
... And bump PORTREVISION on ports that depend on devel/qscintilla2 due to
the shlib version change.

This is brought to you by the KDE on FreeBSD team. Besides updating to newer
upstream releases, this commit also contains a lot of under-the-hood changes
to the PyQt/QScintilla/SIP ports. Their Makefiles had accumulated a lot of
cruft over time, so it was time for some summer cleaning:

- General, belated changes:
  * Use OPTIONS helpers wherever possible, stop including
    <bsd.port.options.mk> when not necessary, stop checking for
    ${PORT_OPTIONS:MDOCS} and ${PORT_OPTIONS:MEXAMPLES} when not necessary,
    add options such as DOCS and/or DEBUG where they were only checked for.

- QScintilla ports:
  * Drop the API option from py-qt4-qscintilla2. It had been broken ever
    since staging support was added, and its existence does not make much
    sense: QScintilla is a hard dependency regardless of the state of this
    option anyway, they all come from the same tarball and the configuration
    script assumes the .api file will always be installed.

- PyQt ports:
  * The configure.py patch shared by all PyQt ports has been trimmed down to
    the minimum. Changes for Qt3 compatibility or for things that are just
    not needed anymore have been removed.

  * Several post-configure targets in the PyQt ports have been removed, as
    they had no effect on the way the ports were built whatsoever.

  * In some cases, instead of calling Python's py_compile.py on `ls *.py
    */*.py */*/*.py` to generate .pyc and .pyo files, we just call
    compileall.py, which is made for this kind of task.

  * The patch + sed hack to build py-qt4-dbussupport has been replaced by
    only extracting the dbus/ directory for that port and excluding it from
    all others.

  * Move the bulk of the code in all Makefiles to bsd.pyqt.mk, like the
    non-Python Qt ports do with bsd.qt.mk and the QT_DIST variable. A large
    portion of all PyQt Makefiles were very similar and contained a lot of
    boilerplate code that can be shared among all of them since they all
    come from the same tarball. bsd.pyqt.mk now has a PYQT4_DIST variable
    that, when set, automatically sets several common variables and the
    do-configure target for a port. This allows us to considerably reduce
    the size of all the py-qt4-* Makefiles.

  * To make the above possible and also to allow us to use as many OPTIONS
    helpers as possible, the ARGS variable is now called CONFIGURE_ARGS.
    That's what it was used for anyway.

PR:		191990
2014-07-23 19:53:11 +00:00

123 lines
4.3 KiB
Makefile

# bsd.pyqt.mk - Global definitions for PyQt related ports
#
# $FreeBSD$
#
# Port variables:
# PYQT4_DIST - This port is part of PyQt4 itself. Variables and
# targets are then set assuming a certain tarball and
# port layout.
#
PYQT_MAINTAINER= kde@FreeBSD.org
MASTER_SITE_RIVERBANK= http://www.riverbankcomputing.com/static/Downloads/%SUBDIR%/
MASTER_SITES_SIP= SF/pyqt/sip/sip-${PORTVERSION} \
${MASTER_SITE_GENTOO:S,%SUBDIR%,distfiles,}
MASTER_SITES_PYQT4= SF/pyqt/PyQt4/PyQt-${PORTVERSION} \
${MASTER_SITE_GENTOO:S,%SUBDIR%,distfiles,}
MASTER_SITES_QSCI2= SF/pyqt/QScintilla2/QScintilla-${PORTVERSION} \
${MASTER_SITE_GENTOO:S,%SUBDIR%,distfiles,}
SIP_VERSION= 4.16.2
PYQT4_VERSION= 4.11.1
QSCI2_VERSION= 2.8.3
SIP_DISTNAME= sip-${SIP_VERSION}
PYQT4_DISTNAME= PyQt-x11-gpl-${PYQT4_VERSION}
PYQT4_DISTINFO_FILE= ${.CURDIR}/../../devel/py-qt4/distinfo
QSCI2_DISTNAME= QScintilla-gpl-${QSCI2_VERSION}
QSCI2_DISTINFO_FILE= ${.CURDIR}/../../devel/qscintilla2/distinfo
PYQT4_COMPONENTS= assistant core dbus dbussupport declarative \
demo designer designerplugin doc gui help \
multimedia network opengl phonon qscintilla2 \
script scripttools sql svg test webkit xml \
xmlpatterns
assistant_PORT= devel/py-qt4-assistant
core_PORT= devel/py-qt4-core
dbus_PORT= devel/py-qt4-dbus
dbussupport_PORT= devel/py-qt4-dbussupport
declarative_PORT= devel/py-qt4-declarative
demo_PORT= misc/py-qt4-demo
designer_PORT= devel/py-qt4-designer
designerplugin_PORT= devel/py-qt4-designerplugin
doc_PORT= misc/py-qt4-doc
gui_PORT= x11-toolkits/py-qt4-gui
help_PORT= devel/py-qt4-help
multimedia_PORT= multimedia/py-qt4-multimedia
network_PORT= net/py-qt4-network
opengl_PORT= x11/py-qt4-opengl
phonon_PORT= multimedia/py-qt4-phonon
qscintilla2_PORT= devel/py-qt4-qscintilla2
script_PORT= devel/py-qt4-script
scripttools_PORT= devel/py-qt4-scripttools
sql_PORT= databases/py-qt4-sql
svg_PORT= graphics/py-qt4-svg
test_PORT= devel/py-qt4-test
webkit_PORT= www/py-qt4-webkit
xml_PORT= textproc/py-qt4-xml
xmlpatterns_PORT= textproc/py-qt4-xmlpatterns
assistant_DESC= Python bindings for QtAssistant module
core_DESC= Python bindings for QtCore module
dbus_DESC= Python bindings for QtDBus module
dbussupport_DESC= Python bindings for D-Bus
declarative_DESC= Python bindings for QtDeclarative module
demo_DESC= PyQt4 demo and examples
designer_DESC= Python bindings for QtDesigner module
designerplugin_DESC= Python bindings for QtDesigner plugin
doc_DESC= PyQt4 documentation
gui_DESC= Python bindings for QtGui module
help_DESC= Python bindings for QtHelp module
multimedia_DESC= Python bindings for Multimedia module
network_DESC= Python bindings for QtNetwork module
opengl_DESC= Python bindings for QtOpenGL module
phonon_DESC= Python bindings for Phonon module
qscintilla2_DESC= Python bindings for QScintilla2
script_DESC= Python bindings for QtScript module
scripttools_DESC= Python bindings for QtScriptTools module
sql_DESC= Python bindings for QtSql module
svg_DESC= Python bindings for QtSvg module
test_DESC= Python bindings for QtTest module
webkit_DESC= Python bindings for QtWebKit module
xml_DESC= Python bindings for QtXml module
xmlpatterns_DESC= Python bindings for QtXmlPatterns module
.if defined(PYQT4_DIST)
PORTVERSION= ${PYQT4_VERSION}
MASTER_SITES= ${MASTER_SITES_PYQT4}
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}qt4-
DISTNAME= ${PYQT4_DISTNAME}
DISTINFO_FILE= ${PYQT4_DISTINFO_FILE}
HAS_CONFIGURE= yes
USE_PYTHON= yes
QT_NONSTANDARD= yes # Do not add unknown arguments to CONFIGURE_ARGS.
PATCHDIR= ${.CURDIR}/../../devel/py-qt4-core/files
OPTIONSFILE?= ${PORT_DBDIR}/py-qt4-${PORTNAME}/options
SIPDIR= ${PREFIX}/share/py-sip
QSCIDIR= ${PREFIX}/share/qt4/qsci
CONFIGURE_ARGS+=-b ${PREFIX}/bin \
-d ${PYTHONPREFIX_SITELIBDIR} \
-q ${QMAKE} \
--confirm-license \
--sipdir ${SIPDIR}
# One of the things PyQt4 looks for to determine whether to build the Qt DBus
# main loop module (py-qt4-dbussupport) is whether the dbus/ directory is
# present. Only extract it for that port then.
.if ${PORTNAME} != "dbussupport"
EXTRACT_AFTER_ARGS+= --exclude "${DISTNAME}/dbus"
.endif # ${PORTNAME} != "dbussupport"
.if !target(do-configure)
do-configure:
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \
${PYTHON_CMD} configure.py ${CONFIGURE_ARGS}
.endif # !target(do-configure)
.endif # defined(PYQT4_DIST)