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

name                gradle
version             9.0.0
revision            0
categories          devel java groovy
license             Apache-2
maintainers         {amake @amake} openmaintainer

description         An open-source build system that is based on the Groovy language
long_description    Gradle is a build system which offers you ease, power and freedom. \
                    You can choose the balance for yourself. It has powerful multi-project build \
                    support. It has a layer on top of Ivy that provides a build-by-convention \
                    integration for Ivy. It gives you always the choice between the flexibility \
                    of Ant and the convenience of a build-by-convention behavior.

homepage            https://gradle.org/
platforms           {darwin any}
supported_archs     noarch
distname            ${name}-${version}-bin
master_sites        https://services.gradle.org/distributions

# Update checksums for variant when updating these!
checksums           rmd160  59597bc8b31a0c11d1f50a093ab2129edfce173e \
                    sha256  8fad3d78296ca518113f3d29016617c7f9367dc005f932bd9d93bf45ba46072b \
                    size    134491514

worksrcdir          ${name}-${version}

use_zip             yes
use_configure       no

java.version        17+
java.fallback       openjdk17

build {}

pre-destroot {
    # Remove extraneous bat files
    delete {*}[glob ${worksrcpath}/bin/*.bat]
}

destroot {
    # Create the target java directory
    xinstall -m 0755 -d ${destroot}${prefix}/share/java/${name}

    # Copy over the needed elements of our directory tree
    copy ${worksrcpath}/bin \
        ${worksrcpath}/lib \
        ${worksrcpath}/LICENSE \
        ${worksrcpath}/NOTICE \
        ${worksrcpath}/README \
        ${destroot}${prefix}/share/java/${name}

    # Symlink gradle into the bin directory
    ln -s ${prefix}/share/java/${name}/bin/gradle ${destroot}${prefix}/bin
}

variant all description {Install supplemental documentation and source code} {
    distname        ${name}-${version}-all

    checksums       rmd160  b62cf1a6ed273483bb3568f7dd248975670aa2b0 \
                    sha256  f759b8dd5204e2e3fa4ca3e73f452f087153cf81bac9561eeb854229cc2c5365 \
                    size    224774486

    post-destroot {
        xinstall -m 0755 -d ${destroot}${prefix}/share/doc/${name}
        copy ${worksrcpath}/src \
            ${worksrcpath}/docs \
            ${destroot}${prefix}/share/doc/${name}
    }
}

notes {
  For Bash and Zsh completion support, install port 'gradle-completion'.
}

livecheck.type  regex
livecheck.url   ${master_sites}
livecheck.regex ${name}-(\\d+\\.\\d+(\\.\\d+)?)-all\\.zip
