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

github.setup        NationalSecurityAgency ghidra 12.1.1 Ghidra_ _build
github.tarball_from archive
revision            0
checksums           rmd160  52960b6ba3a9ac9fcb4fb292254e2251a45c60b1 \
                    sha256  1f90a518204bf7c2d553631baa7229e66bbf33fdff5a73f8a50ca89840bfa999 \
                    size    79274255

categories          devel
license             Apache
maintainers         {1e0.co.uk:dev @hexagonal-sun} {crowell.biz:jeff @crowell} openmaintainer
description         A software reverse engineering (SRE) suite of tools developed by NSA's \
                    Research Directorate in support of the Cybersecurity mission
long_description    {*}${description}
homepage            https://ghidra-sre.org/

java.version        25
java.fallback       openjdk25-zulu

universal_variant   no
depends_build-append    port:gradle port:py314-pip port:python314
depends_run-append      port:python314

set javadest        ${prefix}/share/java/${name}-${version}
configure.env-append    GRADLE_USER_HOME=${worksrcpath}
configure.pre_args  ""
configure.cmd       gradle -I gradle/support/fetchDependencies.gradle
build.env-append    GRADLE_USER_HOME=${worksrcpath}
build.env-append    _JAVA_OPTIONS=-Duser.home=${worksrcpath}
build.cmd           gradle -x FileFormats:extractSevenZipNativeLibs
build.target        buildGhidra

set ghidra_copy_list \
[list \
    Extensions \
    GPL \
    Ghidra \
    LICENSE \
    docs \
    ghidraRun \
    licenses \
    server \
    support \
]

destroot {
    system "unzip ${worksrcpath}/build/dist/ghidra*.zip -d ${worksrcpath}/ghbuild"
    xinstall -d ${destroot}${javadest}
    foreach item ${ghidra_copy_list} {
        copy ${worksrcpath}/ghbuild/ghidra_${version}_DEV/${item} ${destroot}${javadest}/
    }
}

# app settings
app.executable      ${javadest}/ghidraRun
app.icon            ${worksrcpath}/Ghidra/RuntimeScripts/Windows/support/ghidra.ico
app.retina          yes
