# -*- 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            dom4j dom4j 2.2.0 version/
github.tarball_from     archive

categories              java
license                 BSD
platforms               any
supported_archs         noarch
homepage                https://dom4j.github.io
maintainers             {sethm.id.au:dev @McDaMastR} \
                        openmaintainer

description             XML, XPath, and XSLT support for Java
long_description        dom4j is an open source Java framework for processing \
                        XML. It is integrated with XPath and has full support \
                        for DOM, JAXP, and SAX.

# dom4j and jaxen depend on one another.
# Until this circular dependency is resolved, let Gradle fetch their binaries.
# <https://github.com/dom4j/dom4j/issues/24>

depends_build-append    bin:gradle8:gradle8
depends_lib-append      port:msv
depends_test-append     port:xalanj \
                        port:xercesj

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

set gradle_home         ${worksrcpath}/.gradle

checksums               rmd160  ca6587d9d82ba159336f86099636c449b48c15b2 \
                        sha256  12479ae45111846eeecff25db5e7a58fc5268e8064f9e998c68322a60eb671f7 \
                        size    554121

patchfiles              use-installed-jars.diff

post-patch {
    reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/build.gradle
}

use_configure           no

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

test.run                yes
test.args               --no-daemon \
                        --gradle-user-home="${gradle_home}"

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

    xinstall -d ${destjavadir}
    xinstall -m 644 \
        ${worksrcpath}/build/libs/${name}.jar \
        ${destjavadir}

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

    if {[variant_isset doc]} {
        copy ${worksrcpath}/build/docs/javadoc ${destdocdir}
    }
}

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