You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
268 lines
8.9 KiB
Tcl
268 lines
8.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
|
|
|
|
name py-pyqt4
|
|
|
|
categories-append devel
|
|
platforms macosx
|
|
maintainers {michaelld @michaelld} openmaintainer
|
|
license GPL-3
|
|
description PyQt4 is a set of Python bindings for the Qt4 toolkit
|
|
long_description \
|
|
PyQt4 is a set of Python bindings for the Qt4 toolkit. The \
|
|
bindings are implemented as a set of Python modules: qt, \
|
|
qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml, \
|
|
and contains 300 classes and over 5,750 functions and methods.
|
|
homepage https://www.riverbankcomputing.com/software/pyqt/intro
|
|
|
|
version 4.12.1
|
|
|
|
set branch [join [lrange [split ${version} .] 0 1] .]
|
|
set patch [lindex [split ${version} .] 2]
|
|
|
|
# pre-declare provided subports
|
|
|
|
python.versions 27 37 310
|
|
python.default_version 27
|
|
|
|
foreach py_ver ${python.versions} {
|
|
subport py${py_ver}-pyqt4 {}
|
|
}
|
|
|
|
if {${name} ne ${subport}} {
|
|
|
|
PortGroup qt4 1.0
|
|
|
|
master_sites sourceforge:pyqt
|
|
|
|
if {${patch} == 0} {
|
|
distname PyQt4_gpl_mac-${branch}
|
|
} else {
|
|
distname PyQt4_gpl_mac-${version}
|
|
}
|
|
|
|
# bump the epoch to revert the version back to 4.12.1
|
|
epoch 1
|
|
|
|
# bump the revision back to 2, where it was
|
|
# before the updates to 4.12.[23].
|
|
revision 4
|
|
|
|
checksums rmd160 07125dd79a1d76dd83680a4f940f267f792486aa \
|
|
sha256 3224ab2c4d392891eb0abbc2bf076fef2ead3a5bb36ceae2383df4dda00ccce5 \
|
|
size 11324734
|
|
|
|
patchfiles-append patch-configure.py.diff \
|
|
patch-add_ppc64.diff
|
|
|
|
dist_subdir python
|
|
|
|
depends_lib-append port:py${python.version}-sip4 \
|
|
port:dbus-python${python.version} \
|
|
port:dbus
|
|
|
|
# patch-configure.py* file alters configure.py so that the
|
|
# qtdesigner plugin can link. It ensures that both LFLAGS are
|
|
# included and that the relevant version framework is linked. It
|
|
# also adds a "framework" directory concept to make the split in
|
|
# qt4-mac as of 4.8.0, and uses it where appropriate.
|
|
|
|
# fix location of MacPorts'-installed Qt .apps, step 1
|
|
|
|
patchfiles-append patch-fix-qt_apps_dir.diff
|
|
|
|
# because CPATH is set, pkgconfig does not include
|
|
# ${prefix}/include even when requested the configure.py script,
|
|
# however, adds /phonon to the include directory
|
|
configure.env-append \
|
|
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
|
|
|
|
post-patch {
|
|
reinplace "s|@@MACPORTS_PYTHON_FRAMEWORK@@|${python.prefix}/Python|" ${worksrcpath}/configure.py
|
|
|
|
# fix location of MacPorts'-installed Qt .apps, step 2
|
|
|
|
reinplace "s|@QT_APPS_DIR@|${qt_apps_dir}|" \
|
|
${worksrcpath}/examples/demos/qtdemo/menumanager.py \
|
|
examples/designer/plugins/plugins.py
|
|
}
|
|
|
|
use_configure yes
|
|
|
|
pre-configure {
|
|
# allow ccache, if specified by the user
|
|
if {[tbool configure.ccache]} {
|
|
configure.env-append CCACHE=ccache
|
|
}
|
|
|
|
foreach arch [get_canonical_archs] {
|
|
configure.args-append --use-arch=$arch
|
|
}
|
|
}
|
|
|
|
configure.cmd "${python.bin} configure.py -q ${qt_qmake_cmd} --verbose --confirm-license"
|
|
configure.pre_args
|
|
configure.universal_args-delete --disable-dependency-tracking
|
|
|
|
configure.args-append -e QtGui \
|
|
-e QtHelp \
|
|
-e QtMultimedia \
|
|
-e QtNetwork \
|
|
-e QtDeclarative \
|
|
-e QtOpenGL \
|
|
-e QtScript \
|
|
-e QtScriptTools \
|
|
-e QtSql \
|
|
-e QtSvg \
|
|
-e QtTest \
|
|
-e QtWebKit \
|
|
-e QtXml \
|
|
-e QtXmlPatterns \
|
|
-e QAxContainer \
|
|
-e QtDesigner \
|
|
--dbus=${python.include}/dbus-1.0 \
|
|
--no-qsci-api \
|
|
--sipdir=${python.prefix}/share/sip/PyQt4
|
|
|
|
# SIP's configure tools ignore environment variables, so have to
|
|
# get important info in in other ways if/as possible; SIP will, by
|
|
# default, use what was found by QMake when qt4-mac was installed.
|
|
|
|
set cflags "${configure.cflags}"
|
|
set cxxflags "${configure.cxxflags}"
|
|
if {[tbool configure.pipe]} {
|
|
set cflags "${cflags} -pipe"
|
|
set cxxflags "${cxxflags} -pipe"
|
|
}
|
|
|
|
configure.post_args \
|
|
CC=${configure.cc} \
|
|
CXX=${configure.cxx} \
|
|
LFLAGS="-F${frameworks_dir} ${configure.ldflags}" \
|
|
CFLAGS="${cflags}" \
|
|
CXXFLAGS="${cxxflags}"
|
|
|
|
variant phonon description {Add phonon support} {
|
|
configure.args-append -e phonon
|
|
depends_lib-append port:phonon
|
|
}
|
|
|
|
variant scintilla description {Add QScintilla API file } {
|
|
configure.args-delete --no-qsci-api
|
|
configure.args-append --qsci-api \
|
|
--qsci-api-destdir=${qt_data_dir}/qsci
|
|
depends_lib-append port:qscintilla-qt4
|
|
|
|
post-destroot {
|
|
# move the Qsci API file to a Python specific name
|
|
move ${destroot}${qt_data_dir}/qsci/api/python/PyQt4.api \
|
|
${destroot}${qt_data_dir}/qsci/api/python/PyQt4-Python${python.branch}.api
|
|
}
|
|
}
|
|
|
|
post-configure {
|
|
if {[variant_exists universal] && [variant_isset universal]} {
|
|
set conflags ""
|
|
foreach arch ${configure.universal_archs} {
|
|
if {${arch} eq "i386"} {append conflags "x86 "} else {
|
|
if {${arch} eq "ppc64"} {append conflags "ppc_64 "} else {
|
|
append conflags ${arch} " "
|
|
}
|
|
}
|
|
}
|
|
|
|
set profiles [exec find ${worksrcpath} -name "*.pro"]
|
|
foreach profile ${profiles} {
|
|
reinplace -E "s|^(CONFIG\[ \\t].*)|\\1 ${conflags}|" ${profile}
|
|
}
|
|
|
|
# This file exists if Qt was installed non-universal.
|
|
# Easiest just to check if it was created.
|
|
if {[file exists ${worksrcpath}/designer/python.pro ]} {
|
|
system -W ${worksrcpath}/designer "${qt_qmake_cmd} \
|
|
-spec ${qt_mkspecs_dir}/macx-g++ \
|
|
-o Makefile python.pro"
|
|
}
|
|
}
|
|
}
|
|
|
|
# allow ccache, if specified by the user
|
|
pre-build {
|
|
if {[tbool configure.ccache]} {
|
|
build.post_args "CCACHE=ccache"
|
|
}
|
|
}
|
|
|
|
build.cmd make
|
|
build.target all
|
|
use_parallel_build yes
|
|
|
|
destroot.cmd ${build.cmd}
|
|
destroot.destdir DESTDIR=${destroot}
|
|
|
|
test.run yes
|
|
python.test_framework
|
|
test.cmd cd qt && ${python.bin} -c 'import PyQt4'
|
|
|
|
post-destroot {
|
|
# Clean out empty dirs first
|
|
set docdir ${destroot}${prefix}/share/doc
|
|
file delete ${docdir}/${subport}/examples
|
|
file delete ${docdir}/${subport}/
|
|
file copy ${worksrcpath}/doc ${docdir}/${subport}
|
|
file copy ${worksrcpath}/examples \
|
|
${docdir}/${subport}
|
|
xinstall -m 644 -W ${worksrcpath} \
|
|
ChangeLog LICENSE NEWS README THANKS \
|
|
${docdir}/${subport}
|
|
|
|
# Rename designer plugin to include Python version; easiest
|
|
# just to check if it was created, instead of patching.
|
|
if {[file exists ${destroot}${qt_plugins_dir}/designer/libpyqt4.dylib]} {
|
|
# rename Qt4 specific files
|
|
# (a) designer plugin
|
|
set old_name libpyqt4.dylib
|
|
set new_name libpy${python.version}qt4.dylib
|
|
|
|
move ${destroot}${qt_plugins_dir}/designer/${old_name} \
|
|
${destroot}${qt_plugins_dir}/designer/${new_name}
|
|
system "install_name_tool -id ${new_name} \
|
|
${destroot}${qt_plugins_dir}/designer/${new_name}"
|
|
}
|
|
|
|
# delete python3 code from python2 installs and vice versa,
|
|
# if each exists
|
|
if {${python.version} >= 30} {
|
|
if {[file exists ${destroot}${python.pkgd}/PyQt4/uic/port_v2]} {
|
|
delete ${destroot}${python.pkgd}/PyQt4/uic/port_v2
|
|
}
|
|
} else {
|
|
if {[file exists ${destroot}${python.pkgd}/PyQt4/uic/port_v3]} {
|
|
delete ${destroot}${python.pkgd}/PyQt4/uic/port_v3
|
|
}
|
|
}
|
|
}
|
|
|
|
variant debug description "Build debug libraries" {
|
|
configure.cmd-append --debug
|
|
}
|
|
|
|
}
|
|
|
|
if {[string last devel ${subport}] != -1} {
|
|
|
|
livecheck.type none
|
|
|
|
} else {
|
|
|
|
if {${patch} == 0} {
|
|
livecheck.version ${branch}
|
|
}
|
|
livecheck.type regex
|
|
livecheck.url https://www.riverbankcomputing.com/software/pyqt/download
|
|
livecheck.regex >PyQt4_gpl_mac-(\[0-9.\]*).tar.gz<
|
|
|
|
}
|