# -*- 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           kde4   1.1

name                py-pykde4
version             4.14.3
revision            5
categories          kde kde4 devel
license             LGPL-2+
maintainers         {gmail.com:rjvbertin @RJVB} openmaintainer
description         Python bindings for the KDE Development Platform
long_description    This package contains PyKDE, the Python bindings for the KDE \
                    libraries, that allow you to write KDE programs using Python instead of \
                    C++. It contains at least the following modules under the \
                    PyKDE namespace: \
                     \n* dnssd \
                     \n* kdecore \
                     \n* kdeui \
                     \n* khtml \
                     \n* kio \
                     \n* knewstuff \
                     \n* kparts \
                     \n* kterminal \
                     \n* ktexteditor \
                     \n* kutils \
                     \n* plasma \
                     \n* solid \
                    \nAnd a few KDE related technologies like: \
                     \n* akonadi \
                     \n* phonon \
                     \n* soprano
homepage            http://www.riverbankcomputing.co.uk/software/pykde/intro
master_sites        kde:stable/${version}/src/
use_xz              yes
distname            pykde4-${version}
checksums           rmd160  3ea2492cd31704e559456cb78dd85660fae7e74c \
                    sha256  7fb9d7b5ed03d531243ebd67939baf30933452dafbdfca866e6653e9a77d80fc

set python.versions         {{27 2.7}}
set python.default_version  27

foreach py ${python.versions} {
    set py_ver [lindex ${py} 0]
    subport py${py_ver}-pykde4 {
        depends_lib-append  port:kdelibs4 \
                            port:soprano \
                            port:py${py_ver}-pyqt4 \
                            port:dbus-python${py_ver}
        depends_run-append  port:python${py_ver} port:py${py_ver}-pyqt4

        set py_bra              [lindex ${py} 1]
        set pylibdir            ${frameworks_dir}/Python.framework/Versions/${py_bra}/lib/python${py_bra}
        configure.args-append   -DPYKDEUIC4_ALTINSTALL=TRUE \
                                -DDEFAULT_PYTHON_VERSION=false -DPYTHON_EXECUTABLE=${prefix}/bin/python${py_bra} \
                                -DPYTHON_INCLUDE_PATH=${frameworks_dir}/Python.framework/Versions/${py_bra}/Headers \
                                -DPYTHON_INCLUDE_DIR2=${frameworks_dir}/Python.framework/Versions/${py_bra}/Headers \
                                -DPYTHON_LIBRARY=${frameworks_dir}/Python.framework/Versions/${py_bra}/Python \
                                -DPYTHON_SITE_PACKAGES_INSTALL_DIR=${pylibdir}/site-packages
        post-configure {
            reinplace -W ${build.dir} "s|${prefix}/lib/python${py_bra}/|${pylibdir}/|g" cmake_install.cmake pykdeconfig.py tools/pykdeuic4/cmake_install.cmake
        }
        post-destroot {
            foreach module [glob ${destroot}${pylibdir}/site-packages/PyKDE4/*.dylib] {
                set fname [file rootname ${module}]
                file rename ${module} "${fname}.so"
            }
            xinstall -m 0755 ${build.dir}/pykdeconfig.py ${destroot}${pylibdir}/site-packages/PyKDE4
            # who will ever need ${prefix}/share/sip/PyKDE4/pykde_config.sip?
            file delete -force ${destroot}${prefix}/share/sip
            file delete ${destroot}${prefix}/share/apps/pykde4/examples/kpartsExamples/konsolepart.py
            file rename ${destroot}${prefix}/share/apps/pykde4 ${destroot}${prefix}/share/apps/${subport}
            reinplace -W ${destroot}${prefix}/share/apps/${subport}/examples \
                "s|#\!/usr/bin/env python|#\!${prefix}/bin/python${py_bra}|g" __init__.py default.py \
                    kdecoreExamples/__init__.py kdecoreExamples/kaboutdata.py kdecoreExamples/kstandarddirs.py \
                    kdeuiExamples/__init__.py kdeuiExamples/kaboutapplicationdialog.py kdeuiExamples/kaboutkdedialog.py \
                    kdeuiExamples/kapplication.py kdeuiExamples/kcolorbutton.py kdeuiExamples/kcolorcells.py \
                    kdeuiExamples/kcolorcombo.py kdeuiExamples/kcolordialog.py kdeuiExamples/kcolorpatch.py \
                    kdeuiExamples/kcombobox.py kdeuiExamples/kdatepicker.py kdeuiExamples/kdatewidget.py \
                    kdeuiExamples/kfontdialog.py kdeuiExamples/klistwidget.py kdeuiExamples/kmainwindow.py \
                    khtmlExamples/__init__.py kioExamples/__init__.py kpartsExamples/__init__.py kpartsExamples/katepart.py \
                    kutilsExamples/__init__.py polkitqtExamples/PkExampleUi.py \
                    polkitqtExamples/pkexample.py polkitqtExamples/pkexamplehelper.py solidExamples/__init__.py \
                    solidExamples/solid_audiointerface.py solidExamples/solid_device.py solidExamples/solid_networkinterface.py \
                    solidExamples/solid_processor.py solidExamples/solid_storageaccess.py solidExamples/solid_storagedrive.py \
                    solidExamples/solid_storagevolume.py solid_demo.py
            reinplace -W ${destroot}${prefix}/share/apps/${subport}/examples \
                "s|#\!python|#\!${prefix}/bin/python${py_bra}|g" __init__.py default.py \
                    kdecoreExamples/__init__.py kdecoreExamples/kaboutdata.py kdecoreExamples/kstandarddirs.py \
                    kdeuiExamples/__init__.py kdeuiExamples/kaboutapplicationdialog.py kdeuiExamples/kaboutkdedialog.py \
                    kdeuiExamples/kapplication.py kdeuiExamples/kcolorbutton.py kdeuiExamples/kcolorcells.py \
                    kdeuiExamples/kcolorcombo.py kdeuiExamples/kcolordialog.py kdeuiExamples/kcolorpatch.py \
                    kdeuiExamples/kcombobox.py kdeuiExamples/kdatepicker.py kdeuiExamples/kdatewidget.py \
                    kdeuiExamples/kfontdialog.py kdeuiExamples/klistwidget.py kdeuiExamples/kmainwindow.py \
                    khtmlExamples/__init__.py kioExamples/__init__.py kpartsExamples/__init__.py kpartsExamples/katepart.py \
                    kutilsExamples/__init__.py polkitqtExamples/PkExampleUi.py \
                    polkitqtExamples/pkexample.py polkitqtExamples/pkexamplehelper.py solidExamples/__init__.py \
                    solidExamples/solid_audiointerface.py solidExamples/solid_device.py solidExamples/solid_networkinterface.py \
                    solidExamples/solid_processor.py solidExamples/solid_storageaccess.py solidExamples/solid_storagedrive.py \
                    solidExamples/solid_storagevolume.py solid_demo.py
        }
    }
}

subport ${name}-docs {
    long_description            Python bindings for the KDE Development Platform: the documentation
    # extract only the docs directory:
    extract.post_args-append    ${distname}/docs
    configure.args-append       -DHTML_INSTALL_DIR:PATH=${prefix}/share/doc/HTML
    configure.post_args         ${configure.post_args}/docs
    supported_archs             noarch
    platforms                   any
}

if {${subport} eq ${name}} {
    supported_archs       noarch
    platforms             any
    depends_lib-append    port:py${python.default_version}-pykde4
    distfiles
    use_configure   no
    build {}
    destroot {
        xinstall -d -m 755 ${destroot}${prefix}/share/doc/kde-installed-packages
        system "touch ${destroot}${prefix}/share/doc/kde-installed-packages/${name}=py${python.default_version}-pykde4"
    }
}

if {${subport} ne "${name}-docs"} {
    # patches come directly from Kubuntu, after doing a hardcoded -p1
    #                    python3.3.diff
    patchfiles-append   add_qt_kde_definitions.diff \
                        fix_kpythonpluginfactory_build.diff \
                        make_pykde4_respect_sip_flags.diff \
                        pythonpluginfactory_use_versioned_python_lib.diff \
                        optional_install_sip_files.diff \
                        pythonpluginfactory_python3.diff \
                        kubuntu_include_dirs.diff \
                        kubuntu_kpythonpluginfactory_3.2support.diff \
                        pykde4-macports-adaptations.diff \
                        pykde4-macports-adaptations2.diff \
                        pykde4-macports-adaptations-noDLFCN.diff \
                        pykde4-macports-adaptations-toolongfilename.diff
}

if {[variant_isset docs]} {
    depends_run-append  port:${name}-docs
}

compiler.blacklist  llvm-gcc-4.2 macports-llvm-gcc-4.2

livecheck.url       ${kde4.mirror}
livecheck.regex     (\\d+(\\.\\d+)+)
