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

set rev             6e8dcdebbadf4f8aa75e6a4b6e0bdf89dce1513a
github.setup        gsource-mirror gn $rev
github.tarball_from archive

# git rev-list --count initial-commit..
version             2354
revision            0
categories          devel
license             BSD
maintainers         nomaintainer

description         meta-build system

long_description    GN is a meta-build system that generates build files for \
                    Ninja.

homepage            https://gn.googlesource.com/gn

checksums           rmd160  77b293f04bd67e1c51c1cbe2db6d082384f5536b \
                    sha256  5916a630f363848a06f87424a6110c745f998ba2c5a1c6f3c9f49a4368e97b48 \
                    size    1140053

set py_ver          3.14
set py_ver_nodot    [string map {. {}} ${py_ver}]

depends_build       port:ninja \
                    port:python${py_ver_nodot}

depends_run         port:python${py_ver_nodot}

patchfiles          patch-commit-id.diff \
                    patch-macos-version.diff \
                    patch-objc.diff \
                    patch-ppc.diff \
                    patch-python.diff \
                    patch-semaphore.diff

post-patch {
    reinplace "s|@VERSION@|${version}|" ${worksrcpath}/build/gen.py
    reinplace "s|@COMMIT_ID@|[string range $rev 0 11]|" \
        ${worksrcpath}/build/gen.py
    reinplace "s|@DEPLOYMENT_TARGET@|${macosx_deployment_target}|" \
        ${worksrcpath}/build/gen.py
    reinplace "s|@PYTHON@|${configure.python}|" ${worksrcpath}/src/gn/setup.cc
}

compiler.cxx_standard   2020

configure.python    ${prefix}/bin/python${py_ver}
configure.cmd       ${configure.python} build/gen.py
configure.pre_args

# Upstream seems to support minimum 10.9. Build fails with -Werror on older systems:
# desc_builder.cc: error: redundant move in return statement [-Werror=redundant-move]
if {${os.platform} eq "darwin" && ${os.major} < 13} {
    configure.args-append   --allow-warnings
}

build.cmd           ${prefix}/bin/ninja
build.dir           ${worksrcpath}/out
build.target

destroot {
    copy ${worksrcpath}/out/gn ${destroot}${prefix}/bin/
    set docdir ${prefix}/share/doc/${name}
    xinstall -d ${destroot}${docdir}
    xinstall -m 0644 -W ${worksrcpath} AUTHORS LICENSE OWNERS README.md \
        ${destroot}${docdir}
    copy ${worksrcpath}/docs ${destroot}${docdir}
}

test.run            yes
test.cmd            ${worksrcpath}/out/gn_unittests
test.target
