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

github.setup        chapel-lang chapel 1.20.0
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from tarball
categories          lang parallel science
supported_archs     i386 x86_64
maintainers         {takeshi @tenomoto} openmaintainer
description         parallel programming language
long_description \
    Chapel is a new parallel programming language \
    being developed by Cray Inc. as part of the DARPA-led \
    High Productivity Computing Systems program (HPCS).
license             BSD
homepage            http://chapel.cray.com/

checksums           rmd160  23b5c1a70e94dcc286565146bcf0c76d095f1e76 \
                    sha256  fcd73ba194f5f66e07149270dde4fb1f132204bd3ccb5a513c9403755ebcc7ae \
                    size    152898957

use_configure       no
use_parallel_build  no

configure.optflags  -O3

variant universal {}

set py_ver          3.11
set py_ver_nodot    [string map {. {}} ${py_ver}]
depends_build-append port:python${py_ver_nodot}

build.env-append    PATH=${workpath}/bin:$env(PATH)
post-extract {
    file mkdir ${workpath}/bin
    ln -s ${prefix}/bin/python${py_ver} ${workpath}/bin/python
}

build.env-append    CHPL_HOST_COMPILER=clang \
                    CHPL_TARGET_COMPILER=clang \
                    CHPL_COMM=none \
                    CHPL_TASKS=fifo \
                    CHPL_MEM=cstdlib \
                    CHPL_GMP=none \
                    CHPL_REGEXP=none \
                    CHPL_LLVM=none
build.env-append    LDFLAGS=[get_canonical_archflags ld]
build.args          CXX=${configure.cxx} \
                    CC=${configure.cc} \
                    OPT_CFLAGS="${configure.optflags} [get_canonical_archflags cc]"

destroot {
    xinstall -m 755 ${worksrcpath}/bin/darwin/chpl ${destroot}${prefix}/bin
    xinstall -d ${destroot}${prefix}/lib/${name}
    foreach d "compiler lib examples make modules util runtime" {
        file copy ${worksrcpath}/${d} ${destroot}${prefix}/lib/${name}
    }
    xinstall -d ${destroot}${prefix}/lib/${name}/third-party
    foreach d "chpl-venv fltk gasnet gmp hwloc jemalloc libunwind qthread re2" {
        xinstall -d ${destroot}${prefix}/lib/${name}/third-party/$d
        xinstall -m 644 ${worksrcpath}/third-party/${d}/Makefile.include \
            ${destroot}${prefix}/lib/${name}/third-party/$d
    }
    xinstall -d ${destroot}${prefix}/lib/${name}/third-party/llvm
    foreach f "Makefile.include-none Makefile.share" {
        xinstall -m 644 ${worksrcpath}/third-party/llvm/$f \
            ${destroot}${prefix}/lib/${name}/third-party/llvm
    }
    xinstall -d ${destroot}${prefix}/lib/${name}/third-party/utf8-decoder
    xinstall -m 644 ${worksrcpath}/third-party/utf8-decoder/utf8-decoder.h \
        ${destroot}${prefix}/lib/${name}/third-party/utf8-decoder
    xinstall -d ${destroot}${prefix}/etc/${name}
    foreach d "README.md emacs source-highlight vim" {
        file copy ${worksrcpath}/highlight/${d} ${destroot}${prefix}/etc/${name}
    }
}

variant universal {}

notes "
set environment variables following ${prefix}/lib/${name}/util/quickstart/setchplenv.bash
"
