# -*- coding: utf-8; mode: tcl; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- vim:fenc=utf-8:ft=tcl:et:sw=8:ts=8:sts=8

PortSystem              1.0
PortGroup               github 1.0
PortGroup               maven 1.0

name                    google-guava
github.setup            google guava 33.7.1 v
github.tarball_from     archive

categories              java
license                 Apache-2
platforms               any
supported_archs         noarch
maintainers             {sethm.id.au:dev @McDaMastR} \
                        openmaintainer

description             Google's core libraries for Java
long_description        Google Guava replaces and includes Google Collections \
                        plus many other important core libraries.  It is a \
                        strict, backward-compatible superset of the Google \
                        Collections Library.  It also includes six months \
                        worth of bug fixes, documetnation fixes, and \
                        performance fixes, so it is strongly encouraged to \
                        instead of Google Collections.

homepage                https://guava.dev

# ${min_jdk} <= ${min_jdk_lts}
if {[variant_isset gwt]} {
        set min_jdk     24
        set min_jdk_lts 25
} else {
        set min_jdk     22
        set min_jdk_lts 25
}

java.version            ${min_jdk}+
java.fallback           openjdk${min_jdk_lts}

checksums               rmd160  566348e632502bb007d43189742ba3b7586adf5b \
                        sha256  3cfb130a0389972dacfff54d545f95b4f8de0d6a6355ac1b1f4e5ea18f43e768 \
                        size    5955350

patchfiles              use-installed-jdk.diff

build.args-append       --define maven.javadoc.skip \
                        --define toolchain.jdk.version="\[${min_jdk},)" \
                        --define toolchain.skip \
                        --projects guava \
                        --projects guava-testlib

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

        xinstall -d ${destjavadir}
        xinstall -m 644 \
            ${worksrcpath}/guava/target/guava-${version}-jre.jar \
            ${destjavadir}/guava-jre.jar
        xinstall -m 644 \
            ${worksrcpath}/guava-testlib/target/guava-testlib-${version}-jre.jar \
            ${destjavadir}/guava-testlib-jre.jar

        if {[variant_isset gwt]} {
                xinstall -m 644 \
                        ${worksrcpath}/guava-gwt/target/guava-gwt-${version}-jre.jar \
                        ${destjavadir}/guava-gwt-jre.jar
        }

        xinstall -d ${destdocdir}
        xinstall -m 644 \
                ${worksrcpath}/CONTRIBUTING.md \
                ${worksrcpath}/CONTRIBUTORS \
                ${worksrcpath}/LICENSE \
                ${worksrcpath}/README.md \
                ${destdocdir}
}

variant gwt description {Add GWT support} {
        # Bypass build system bug w/ package goal
        build.target            install
        build.args-append       --projects guava-gwt \
                                --projects guava-tests
}
