# -*- 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
# $Id: Portfile 117968 2014-03-17 20:33:40Z macsforever2000@macports.org $

PortSystem          1.0
PortGroup           python 1.0
PortGroup           github 1.0

github.setup        wbsoft frescobaldi 2.0.15 v
conflicts           frescobaldi-devel
categories          editors python
maintainers         gmail.com:davide.liessi openmaintainer
description         A LilyPond sheet music text editor
long_description    Frescobaldi is an advanced text editor \
                    to edit LilyPond sheet music files. \
                    Features include an integrated PDF preview \
                    and a powerful Score Wizard.
homepage            http://www.frescobaldi.org/
platforms           darwin
supported_archs     noarch
license             GPL-2+

checksums           rmd160  84cd357779e609a399f323567fde669efa6e2a72 \
                    sha256  ab2c1b5738b0b3935d4e90f502a1d4587ec9912a02904005a3472181edf9912c

subport frescobaldi-devel {
    # github.setup also sets 'name frescobaldi', overriding the subport name.
    # With 'name ${subport}', `port lint frescobaldi-devel` gives the following error:
    # 'Error: Portfile directory frescobaldi does not match port name frescobaldi-devel'.
    # With 'set PortInfo(name) ${subport}' (see the definition of 'proc subport' in
    # portutil.tcl) the Portfile works correctly and the error disappears.
    global PortInfo
    set PortInfo(name) ${subport}

    conflicts           frescobaldi
    version             20140311
    set dev_version     2.0.15
}

depends_run-append  port:portmidi

variant python26 conflicts python27 description {Use Python 2.6} {
    python.default_version  26
    # Can use either py*-pyqt4 or py*-pyqt4-devel.
    depends_run-append      path:share/py${python.default_version}-sip/PyQt4:py${python.default_version}-pyqt4 \
                            port:py${python.default_version}-python-poppler-qt4
}
variant python27 conflicts python26 description {Use Python 2.7} {
    python.default_version  27
    # Can use either py*-pyqt4 or py*-pyqt4-devel.
    depends_run-append      path:share/py${python.default_version}-sip/PyQt4:py${python.default_version}-pyqt4 \
                            port:py${python.default_version}-python-poppler-qt4
}
if {![variant_isset python26]} {
    default_variants        +python27
}

variant app description {Make application bundle} {
    depends_build-append    port:py${python.default_version}-py2app
}
default_variants    +app

build {
    if {[variant_isset app]} {
        if {${name} eq ${subport}} {
            set bundle_version    ${version}
        } else {
            set bundle_version    ${dev_version}-dev-${version}
        }

        system -W ${worksrcpath} "${prefix}/bin/python${python.branch} \
            macosx/mac-app.py -f -v ${bundle_version} -s ${prefix}/bin/frescobaldi"
    }
}

post-destroot {
    set share_destroot ${destroot}${prefix}/share
    set share_python ${python.prefix}/share

    set man_dir /man/man1
    xinstall -d ${share_destroot}${man_dir}
    ln -s ${share_python}${man_dir}/frescobaldi.1 ${share_destroot}${man_dir}

    set desktop_dir /applications
    xinstall -d ${share_destroot}${desktop_dir}
    ln -s ${share_python}${desktop_dir}/frescobaldi.desktop ${share_destroot}${desktop_dir}

    set icons_dir /icons/hicolor/scalable/apps
    xinstall -d ${share_destroot}${icons_dir}
    ln -s ${share_python}${icons_dir}/frescobaldi.svg ${share_destroot}${icons_dir}

    set doc_dir ${share_destroot}/doc/${subport}
    xinstall -d ${doc_dir}
    xinstall -m 644 -W ${worksrcpath} \
        COPYING \
        ChangeLog \
        README \
        THANKS \
        ${doc_dir}

    if {[variant_isset app]} {
        file copy ${worksrcpath}/dist/Frescobaldi.app ${destroot}${applications_dir}
    }
}

python.link_binaries_suffix

notes \
"You may want to install FluidSynth and obtain a SoundFont\
in order to have audio output from Frescobaldi's MIDI output.

You will need to select FluidSynth's MIDI input port\
in Frescobaldi's MIDI settings (in Preferences)\
while FluidSynth is running."
