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

name                dotnet-runtime-7
version             7.0.20
revision            0
categories          dotnet
license             MIT
maintainers         {@tsabirgaliev gmail.com:tair.sabirgaliev} \
                    {@judaew judaew} openmaintainer

description         .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

long_description    .NET is a free, cross-platform, open source developer platform \
                    for building many different types of applications. \
                    \
                    With .NET, you can use multiple languages, editors, and libraries \
                    to build for web, mobile, desktop, games, and IoT.

homepage            https://dotnet.microsoft.com/
platforms           {darwin any} {darwin >= 19}
supported_archs     x86_64 arm64

switch ${build_arch} {
    x86_64 {
        distname            dotnet-runtime-${version}-osx-x64
        checksums           rmd160  5f5cc917b57b4190861b864e33ce4825447e9361 \
                            sha256  42c3acff2735cc3646e0954f778d40dd5607462e175ba9a6dfbc9dbae74f8b55 \
                            size    30848718
    }
    arm64 {
        distname            dotnet-runtime-${version}-osx-arm64
        checksums           rmd160  1f5ad390e1195ba90f225b77376b8e5936d33211 \
                            sha256  166c1df61d1c3de63fc49c9b616ff6fcefc04466db4adf4653b219c71e02ca93 \
                            size    29182560
    }
    default {
        known_fail yes
        pre-fetch {
            ui_error "${subport} @ ${version} only supported for architectures ${supported_archs}"
            return -code error "Unsupported architecture: ${build_arch}"
        }
    }
}

master_sites        https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/

worksrcdir          ${name}-${version}
extract.mkdir       yes

use_configure       no

depends_run         port:dotnet-cli

build {}

destroot {
    set dotnet_home ${prefix}/share/dotnet
    set hostfxr_dir /host/fxr
    set runtime_dir /shared/Microsoft.NETCore.App
    xinstall -d ${destroot}${dotnet_home}${hostfxr_dir}
    xinstall -d ${destroot}${dotnet_home}${runtime_dir}

    move ${worksrcpath}${hostfxr_dir}/${version} ${destroot}${dotnet_home}${hostfxr_dir}
    move ${worksrcpath}${runtime_dir}/${version} ${destroot}${dotnet_home}${runtime_dir}
}

livecheck.type      regex
livecheck.url       https://dotnet.microsoft.com/en-us/download/dotnet/7.0
livecheck.regex     ".NET Runtime (\\d+(?:\\.\\d+)*)"
