Ticket #47125: Portfile

File Portfile, 9.0 KB (added by RJVB (René Bertin), 9 years ago)
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# kate: backspace-indents true; indent-pasted-text true; indent-width 4; keep-extra-spaces true; remove-trailing-spaces modified; replace-tabs true; replace-tabs-save true; syntax Tcl/Tk; tab-indents true; tab-width 4;
3# $Id: Portfile 126347 2014-10-08 14:48:31Z nicos@macports.org $
4
5PortSystem          1.0
6PortGroup           kde4   1.1
7
8name                py-pykde4
9version             4.14.3
10categories          kde kde4 devel
11license             LGPL-2+
12maintainers         gmail.com:rjvbertin openmaintainer
13description         Python bindings for the KDE Development Platform
14long_description    This package contains PyKDE, the Python bindings for the KDE \
15                    libraries, that allow you to write KDE programs using Python instead of \
16                    C++. It contains at least the following modules under the \
17                    PyKDE namespace: \
18                    \
19                     * dnssd \
20                     * kdecore \
21                     * kdeui \
22                     * khtml \
23                     * kio \
24                     * knewstuff \
25                     * kparts \
26                     * kterminal \
27                     * ktexteditor \
28                     * kutils \
29                     * plasma \
30                     * solid \
31                    \
32                    And a few KDE related technologies like: \
33                    \
34                     * akonadi \
35                     * phonon \
36                     * soprano
37platforms           darwin
38homepage            http://www.riverbankcomputing.co.uk/software/pykde/intro
39master_sites        kde:stable/${version}/src/
40use_xz              yes
41distname            pykde4-${version}
42checksums           rmd160  3ea2492cd31704e559456cb78dd85660fae7e74c \
43                    sha256  7fb9d7b5ed03d531243ebd67939baf30933452dafbdfca866e6653e9a77d80fc
44
45set python.versions         {{27 2.7} {34 3.4}}
46set python.default_version  27
47
48foreach py ${python.versions} {
49    set py_ver [lindex ${py} 0]
50    subport py${py_ver}-pykde4 {
51        depends_build       port:pkgconfig
52        depends_lib-append  port:kdelibs4 \
53                            port:soprano \
54                            port:boost \
55                            port:py${py_ver}-pyqt4 \
56                            port:dbus-python${py_ver}
57        depends_run-append  port:python${py_ver} port:py${py_ver}-pyqt4
58
59        set py_bra              [lindex ${py} 1]
60        set pylibdir            ${frameworks_dir}/Python.framework/Versions/${py_bra}/lib/python${py_bra}
61        configure.args-append   -DPYKDEUIC4_ALTINSTALL=TRUE \
62                                -DDEFAULT_PYTHON_VERSION=false -DPYTHON_EXECUTABLE=${prefix}/bin/python${py_bra} \
63                                -DPYTHON_INCLUDE_PATH=${frameworks_dir}/Python.framework/Versions/${py_bra}/Headers \
64                                -DPYTHON_INCLUDE_DIR2=${frameworks_dir}/Python.framework/Versions/${py_bra}/Headers \
65                                -DPYTHON_LIBRARY=${frameworks_dir}/Python.framework/Versions/${py_bra}/Python \
66                                -DPYTHON_SITE_PACKAGES_INSTALL_DIR=${pylibdir}/site-packages
67        post-configure {
68            reinplace -W ${build.dir} "s|${prefix}/lib/python${py_bra}/|${pylibdir}/|g" cmake_install.cmake pykdeconfig.py tools/pykdeuic4/cmake_install.cmake
69        }
70        post-destroot {
71            foreach module [glob ${destroot}${pylibdir}/site-packages/PyKDE4/*.dylib] {
72                set fname [file rootname ${module}]
73                file rename ${module} "${fname}.so"
74            }
75            xinstall -m 0755 ${build.dir}/pykdeconfig.py ${destroot}${pylibdir}/site-packages/PyKDE4
76            # who will ever need ${prefix}/share/sip/PyKDE4/pykde_config.sip?
77            file delete -force ${destroot}${prefix}/share/sip
78            file delete ${destroot}${prefix}/share/apps/pykde4/examples/kpartsExamples/konsolepart.py
79            file rename ${destroot}${prefix}/share/apps/pykde4 ${destroot}${prefix}/share/apps/${subport}
80            reinplace -W ${destroot}${prefix}/share/apps/${subport}/examples \
81                "s|#\!/usr/bin/env python|#\!${prefix}/bin/python${py_bra}|g" __init__.py default.py \
82                    kdecoreExamples/__init__.py kdecoreExamples/kaboutdata.py kdecoreExamples/kstandarddirs.py \
83                    kdeuiExamples/__init__.py kdeuiExamples/kaboutapplicationdialog.py kdeuiExamples/kaboutkdedialog.py \
84                    kdeuiExamples/kapplication.py kdeuiExamples/kcolorbutton.py kdeuiExamples/kcolorcells.py \
85                    kdeuiExamples/kcolorcombo.py kdeuiExamples/kcolordialog.py kdeuiExamples/kcolorpatch.py \
86                    kdeuiExamples/kcombobox.py kdeuiExamples/kdatepicker.py kdeuiExamples/kdatewidget.py \
87                    kdeuiExamples/kfontdialog.py kdeuiExamples/klistwidget.py kdeuiExamples/kmainwindow.py \
88                    khtmlExamples/__init__.py kioExamples/__init__.py kpartsExamples/__init__.py kpartsExamples/katepart.py \
89                    kutilsExamples/__init__.py polkitqtExamples/PkExampleUi.py \
90                    polkitqtExamples/pkexample.py polkitqtExamples/pkexamplehelper.py solidExamples/__init__.py \
91                    solidExamples/solid_audiointerface.py solidExamples/solid_device.py solidExamples/solid_networkinterface.py \
92                    solidExamples/solid_processor.py solidExamples/solid_storageaccess.py solidExamples/solid_storagedrive.py \
93                    solidExamples/solid_storagevolume.py solid_demo.py
94            reinplace -W ${destroot}${prefix}/share/apps/${subport}/examples \
95                "s|#\!python|#\!${prefix}/bin/python${py_bra}|g" __init__.py default.py \
96                    kdecoreExamples/__init__.py kdecoreExamples/kaboutdata.py kdecoreExamples/kstandarddirs.py \
97                    kdeuiExamples/__init__.py kdeuiExamples/kaboutapplicationdialog.py kdeuiExamples/kaboutkdedialog.py \
98                    kdeuiExamples/kapplication.py kdeuiExamples/kcolorbutton.py kdeuiExamples/kcolorcells.py \
99                    kdeuiExamples/kcolorcombo.py kdeuiExamples/kcolordialog.py kdeuiExamples/kcolorpatch.py \
100                    kdeuiExamples/kcombobox.py kdeuiExamples/kdatepicker.py kdeuiExamples/kdatewidget.py \
101                    kdeuiExamples/kfontdialog.py kdeuiExamples/klistwidget.py kdeuiExamples/kmainwindow.py \
102                    khtmlExamples/__init__.py kioExamples/__init__.py kpartsExamples/__init__.py kpartsExamples/katepart.py \
103                    kutilsExamples/__init__.py polkitqtExamples/PkExampleUi.py \
104                    polkitqtExamples/pkexample.py polkitqtExamples/pkexamplehelper.py solidExamples/__init__.py \
105                    solidExamples/solid_audiointerface.py solidExamples/solid_device.py solidExamples/solid_networkinterface.py \
106                    solidExamples/solid_processor.py solidExamples/solid_storageaccess.py solidExamples/solid_storagedrive.py \
107                    solidExamples/solid_storagevolume.py solid_demo.py
108        }
109    }
110}
111
112subport ${name}-docs {
113    long_description            Python bindings for the KDE Development Platform: the documentation
114    # extract only the docs directory:
115    extract.post_args-append    ${distname}/docs
116    configure.args-append       -DHTML_INSTALL_DIR:PATH=${prefix}/share/doc/HTML
117    configure.post_args         ${configure.post_args}/docs
118    supported_archs             noarch
119}
120
121if {${subport} eq ${name}} {
122    depends_build-append    port:py${python.default_version}-pykde4
123    fetch {}
124    checksum {}
125    extract {}
126    patch {}
127    configure {}
128    build {}
129    destroot {
130        xinstall -d -m 755 ${destroot}${prefix}/share/doc/kde-installed-packages
131        system "touch ${destroot}${prefix}/share/doc/kde-installed-packages/${name}=py${python.default_version}-pykde4"
132    }
133}
134
135if {${subport} ne "${name}-docs"} {
136    # patches come directly from Kubuntu, after doing a hardcoded -p1
137    #                    python3.3.diff
138    patchfiles-append   python_modules_dont_link_against_libpython.diff \
139                        add_qt_kde_definitions.diff \
140                        fix_kpythonpluginfactory_build.diff \
141                        make_pykde4_respect_sip_flags.diff \
142                        pythonpluginfactory_use_versioned_python_lib.diff \
143                        optional_install_sip_files.diff \
144                        pythonpluginfactory_python3.diff \
145                        kubuntu_include_dirs.diff \
146                        kubuntu_kpythonpluginfactory_3.2support.diff \
147                        pykde4-macports-adaptations.diff \
148                        pykde4-macports-adaptations2.diff \
149                        pykde4-macports-adaptations-noDLFCN.diff \
150                        pykde4-macports-adaptations-toolongfilename.diff
151}
152
153if {[variant_isset docs]} {
154    depends_run-append  port:${name}-docs
155}
156
157compiler.blacklist  llvm-gcc-4.2 macports-llvm-gcc-4.2
158
159livecheck.url       http://kde.mirrors.hoobly.com/stable/
160livecheck.regex     (\\d+(\\.\\d+)+)