# -*- 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           active_variants 1.1
PortGroup           cmake 1.1
PortGroup           github 1.0
PortGroup           java 1.0

github.setup        TurboVNC turbovnc 3.2

name                turbovnc-viewer
license             GPL-2
maintainers         {gmail.com:audvare @Tatsh} openmaintainer
categories          x11 net
description         TurboVNC VNC viewer.
long_description    {*}${description}

checksums           rmd160  848115e201577b13ad87b63aa2a0fb23267fd38b \
                    sha256  a4fd895ebb8a40a5962db8c38e3de61e4d22c77d64d2ea0afe8fd78c7a8aff72 \
                    size    5488973

depends_lib-append  path:include/turbojpeg.h:libjpeg-turbo

java.version        15+

require_active_variants     openjdk11       JNI
require_active_variants     libjpeg-turbo   java

pre-configure {
    # This must be called to set ${java.home}
    java::java_set_env
    configure.args \
        -DTVNC_BUILDSERVER=no \
        -DCMAKE_C_FLAGS=-I${prefix}/include \
        -DJAVA_INCLUDE_PATH=${java.home}/include \
        -DJAVA_INCLUDE_PATH2=${java.home}/include/darwin \
        -DJAVA_AWT_INCLUDE_PATH=${java.home}/include \
}

patch {
    reinplace "s|@VERSION@|${version}|g" ${worksrcpath}/release/Info.plist.in
    reinplace "s|@PKGVENDOR@|MacPorts|g" ${worksrcpath}/release/Info.plist.in
    reinplace "s|@BUILD@|${version}|g" ${worksrcpath}/release/Info.plist.in
    reinplace "s|@CMAKE_PROJECT_NAME@|TurboVNC|g" ${worksrcpath}/release/Info.plist.in
}

post-destroot {
    set appdir "${destroot}${applications_dir}/TurboVNC Viewer.app"
    xinstall -m 0755 -d ${appdir}/Contents/MacOS
    xinstall -m 0755 -d ${appdir}/Contents/Resources/Java
    xinstall -m 0755 -d ${appdir}/Contents/Resources/Native
    xinstall -m 0644 ${worksrcpath}/release/Info.plist.in \
        ${appdir}/Contents/Info.plist
    xinstall -m 0755 ${worksrcpath}/unix/vncviewer/JavaAppLauncher \
        "${appdir}/Contents/MacOS/TurboVNC Viewer"
    set chan [open ${appdir}/Contents/PkgInfo w+]
    puts -nonewline ${chan} "APPL????"
    close ${chan}
    xinstall -m 0644 ${worksrcpath}/release/turbovnc.icns \
        ${worksrcpath}/release/vncviewer.icns ${appdir}/Contents/Resources/
    xinstall -m 0755 ${prefix}/lib/libturbojpeg.dylib \
        ${cmake.build_dir}/java/libturbovnchelper.dylib \
        ${appdir}/Contents/Resources/Native/
    xinstall -m 0644 ${cmake.build_dir}/java/VncViewer.jar \
        ${appdir}/Contents/Resources/Java/
}

if {${os.platform} eq "darwin" && ${os.major} < 11} {
    known_fail yes
    pre-fetch {
        ui_error "${name} @${version} requires OS X 10.7 or later."
        return -code error "incompatible OS X version"
    }
}
