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

github.setup            Guardsquare proguard 7.10.0 v
github.tarball_from     archive
revision                0

categories              java
license                 GPL-2+
platforms               any
supported_archs         noarch
homepage                https://www.guardsquare.com/proguard
maintainers             {sethm.id.au:dev @McDaMastR} \
                        openmaintainer

description             Java bytecode shrinker, optimizer, and obfuscator.
long_description        ProGuard detects and removes unused classes, fields, \
                        methods, and attributes from Java bytecode.  It \
                        optimizes the bytecode and removes unused \
                        instructions.  It renames the remaining classes, \
                        fields, and methods using short meaningless names. \
                        And it preverifies the processed code for Java 6+ and \
                        Java Micro Edition.

depends_build-append    bin:gradle8:gradle8

# Building requires Java >= 11
# Running requires Java >= 8
java.version            11+

set gradle_home         ${workpath}/.home/.gradle

checksums               rmd160  508d91fa00b028c38790f657fabbc1ac83bc6bc0 \
                        sha256  6a1b2b1130af3755e6d1b8baecc9cd9c78f23b30425c591cddcf36634bc134da \
                        size    1243180

use_configure           no

build.cmd               gradle8
build.target            build
build.args              --no-daemon \
                        --exclude-task=check \
                        --exclude-task=javadocJar \
                        --exclude-task=sourcesJar \
                        --gradle-user-home="${gradle_home}"

# Tests fail and complain about a "Debug metadata version mismatch".
# Possibly related to <https://github.com/gradle/gradle/issues/34453>.
# Disable tests for now; check if they pass on next update.
test.run                no
test.target             check
test.args               --no-daemon \
                        --gradle-user-home="${gradle_home}"

destroot {
    set destdocdir  ${destroot}${prefix}/share/doc/${name}
    set destjavadir ${destroot}${prefix}/share/java/${name}

    xinstall -d ${destjavadir}
    xinstall -m 644 \
        ${worksrcpath}/lib/${name}.jar \
        ${worksrcpath}/lib/${name}-ant.jar \
        ${worksrcpath}/lib/${name}gui.jar \
        ${worksrcpath}/lib/retrace.jar \
        ${destjavadir}

    xinstall -d ${destdocdir}
    xinstall -m 644 \
        ${worksrcpath}/CONTRIBUTING.md \
        ${worksrcpath}/LICENSE \
        ${worksrcpath}/README.md \
        ${destdocdir}
    copy {*}[glob -directory ${worksrcpath}/docs/md *] ${destdocdir}

    if {[variant_isset doc]} {
        xinstall -d ${destdocdir}/javadoc
        foreach module {annotations ant base gradle-plugin gui retrace} {
            copy \
                ${worksrcpath}/${module}/build/docs/javadoc \
                ${destdocdir}/javadoc/${module}
        }
    }
}

variant doc \
        description {Install javadoc} {
    build.target-append javadoc
}
