source: trunk/dports/python/py-pyqt4/Portfile @ 86553

Last change on this file since 86553 was 86553, checked in by eborisch@…, 6 years ago

py-pyqt4: Trying to fix linking error when building Designer plugin.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 6.7 KB
Line 
1# -*- 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
2# $Id: Portfile 86553 2011-10-28 15:02:10Z eborisch@macports.org $
3
4PortSystem      1.0
5PortGroup   qt4 1.0
6PortGroup   python 1.0
7
8name            py-pyqt4
9version         4.8.6
10python.versions   24 25 26 27 31
11categories      python devel
12platforms       macosx
13maintainers     michaelld openmaintainer
14license             {GPL-2 GPL-3}
15description     PyQt4 is a set of Python bindings for the Qt4 toolkit
16long_description \
17                PyQt4 is a set of Python bindings for the Qt4 toolkit. The \
18                bindings are implemented as a set of Python modules: qt, \
19                qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml, \
20                and contains 300 classes and over 5,750 functions and methods.
21homepage        http://www.riverbankcomputing.co.uk/software/pyqt/intro
22master_sites    http://www.riverbankcomputing.com/static/Downloads/PyQt4/ \
23                http://pyqwt.sourceforge.net/support/
24distname        PyQt-mac-gpl-${version}
25dist_subdir         python
26
27checksums           md5     67878ee2a3207f38f7b2be5d15b066da \
28                    sha1    44ba16db601556276dfcf0777073a0a1da40f301 \
29                    rmd160  1ca994ed5d8fc6e4bfde5923d2bba72ebdbc0bdc
30
31if {$subport != $name} {
32
33    depends_lib-append port:py${python.version}-sip \
34                       port:qt4-mac
35
36    configure.args-append   -e QtGui \
37                            -e QtHelp \
38                            -e QtMultimedia \
39                            -e QtNetwork \
40                            -e QtDeclarative \
41                            -e QtOpenGL \
42                            -e QtScript \
43                            -e QtScriptTools \
44                            -e QtSql \
45                            -e QtSvg \
46                            -e QtTest \
47                            -e QtWebKit \
48                            -e QtXml \
49                            -e QtXmlPatterns \
50                            -e QtAssistant \
51                            -e QtDesigner \
52                            -e QAxContainer \
53                            --no-qsci-api
54
55    variant phonon description {Add phonon support} {
56        configure.args-append   -e phonon
57        depends_lib-append      port:phonon
58    }
59
60    if {${python.version} == 26 || ${python.version} == 27} {
61        variant scintilla description {Add QScintilla API file } {
62            configure.args-delete   --no-qsci-api
63            configure.args-append   --qsci-api
64            depends_lib-append      port:qscintilla
65        }
66    }
67
68    # The patch file alters configure.py so that the qtdesigner plugin can link.
69    # - it ensures that both LFLAGS are included and that the relevant version framework is linked
70    patchfiles  patch-configure.py
71    post-patch {
72        reinplace "s|@@MACPORTS_PYTHON_FRAMEWORK@@|${frameworks_dir}/Python.framework/Versions/${python.branch}/Python|" ${worksrcpath}/configure.py
73    }
74
75    use_configure yes
76
77    pre-configure {
78        # allow ccache, if specified by the user
79        if {[tbool configure.ccache]} {
80            configure.env-append "CCACHE=ccache"
81        }
82    }
83
84    configure.cmd       "${python.bin} configure.py -q ${qt_qmake_cmd} --verbose --confirm-license"
85    configure.pre_args
86    configure.post_args LFLAGS="-F${frameworks_dir} -L${prefix}/lib"
87
88    variant universal {
89        configure.universal_args
90        configure.post_args     LFLAGS="-F${frameworks_dir} -L${prefix}/lib \
91                                    ${configure.universal_ldflags}"
92        configure.post_args-append      CFLAGS="${configure.universal_cflags}"
93        configure.post_args-append      CXXFLAGS="${configure.universal_cxxflags}"
94    }
95
96    post-configure {
97        if {[variant_isset universal]} {
98            set conflags ""
99            foreach arch ${configure.universal_archs} {
100                if {${arch} == "i386"} {append conflags "x86 "} else {
101                    if {${arch} == "ppc64"} {append conflags "ppc_64 "} else {
102                        append conflags ${arch} " "
103                    }
104                }
105            }
106
107            set profiles [exec find ${worksrcpath} -name "*.pro"]
108            foreach profile ${profiles} {
109                reinplace -E "s|^(CONFIG\[ \\t].*)|\\1 ${conflags}|" ${profile}
110            }
111           
112            # This file exists if Qt was installed non-universal.
113            # Easiest just to check if it was created
114            if {[file exists ${worksrcpath}/designer/python.pro ]} {
115                system "cd ${worksrcpath}/designer && \
116                    ${qt_qmake_cmd} -spec ${qt_mkspecs_dir}/macx-g++ \
117                        -o Makefile python.pro"
118            }
119        }
120    }
121
122# allow ccache, if specified by the user
123    pre-build {
124        if {[tbool configure.ccache]} {
125            build.post_args "CCACHE=ccache"
126        }
127    }
128
129    build.cmd         make
130    build.target    all
131    use_parallel_build yes
132
133    destroot.cmd      ${build.cmd}
134    destroot.destdir  DESTDIR=${destroot}
135
136    test.run    yes
137    test.cmd    cd qt && ${python.bin} -c 'import PyQt4'
138
139    post-destroot {
140        # Clean out empty dirs first
141        set docdir ${destroot}${prefix}/share/doc
142        file delete ${docdir}/${subport}/examples
143        file delete ${docdir}/${subport}/
144        file copy ${worksrcpath}/doc ${docdir}/${subport}
145        file copy ${worksrcpath}/examples \
146            ${docdir}/${subport}
147        xinstall -m 644 -W ${worksrcpath} \
148            GPL_EXCEPTION.TXT GPL_EXCEPTION_ADDENDUM.TXT \
149            LICENSE.GPL2 LICENSE.GPL3 OPENSOURCE-NOTICE.TXT NEWS README \
150            THANKS \
151            ${docdir}/${subport}
152
153        # This file exists if Qt was installed non-universal.
154        # Easiest just to check if it was created
155        if {[file exists ${destroot}${qt_plugins_dir}/designer/libpythonplugin.dylib]} {
156            # rename Qt4 specific files
157            # (a) designer plugin
158            set old_name libpythonplugin.dylib
159            set new_name libpython${python.version}plugin.dylib
160
161            move ${destroot}${qt_plugins_dir}/designer/${old_name} \
162                ${destroot}${qt_plugins_dir}/designer/${new_name}
163            system "install_name_tool -id ${new_name} \
164                ${destroot}${qt_plugins_dir}/designer/${new_name}"
165        }
166
167        # (b) Qsci API file, if it exists (if Qsci is installed at build time)
168        if {[variant_isset scintilla]} {
169            move ${destroot}${qt_data_dir}/qsci/api/python/PyQt4.api \
170                ${destroot}${qt_data_dir}/qsci/api/python/PyQt4-Python${python.branch}.api
171        }
172    }
173
174    variant debug description "Build debug libraries" {
175        configure.cmd-append --debug
176    }
177
178}
179
180livecheck.type   regex
181livecheck.url    http://www.riverbankcomputing.co.uk/software/pyqt/download
182livecheck.regex  "PyQt-mac-gpl-(\[0-9.\]\\.\[0-9.\]\\.\[0-9.\]).tar.gz"
183
Note: See TracBrowser for help on using the repository browser.