Files
macports-ports/dotnet/dotnet-cli/Portfile
T
2026-04-23 02:14:08 +03:00

101 lines
4.4 KiB
Tcl

# -*- 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
### Notes
# .NET File Hierarchy -- based on .NET 6.0
# ${prefx}/share/dotnet
# ├── LICENSE.txt # provided by `dotnet-cli`
# ├── ThirdPartyNotices.txt # provided by `dotnet-cli`
# ├── dotnet # main executable, provided by `dotnet-cli`
# ├── host
# │ └── fxr # Host FX Resolver, provided by `dotnet-runtime-{version}`
# ├── packs
# │ ├── Microsoft.AspNetCore.App.Ref # ASP.NET Core Targeting Pack, provided by `dotnet-sdk-{version}`
# │ ├── Microsoft.NETCore.App.Host.{dotnet-rid} # .NET AppHost Pack, provided by `dotnet-sdk-{version}`
# │ ├── Microsoft.NETCore.App.Ref # .NET Targeting Pack, provided by `dotnet-sdk-{version}`
# │ └── NETStandard.Library.Ref # .NET Standard Targeting Pack, not provided, see https://devblogs.microsoft.com/dotnet/the-future-of-net-standard/
# ├── sdk # provided by `dotnet-sdk-{version}`
# ├── sdk-manifests # provided by `dotnet-sdk-{version}`
# ├── shared
# │ ├── Microsoft.AspNetCore.App # provided by `aspnetcore-runtime-{version}`
# │ └── Microsoft.NETCore.App # provided by `dotnet-runtime-{version}`
# └── templates # provided by `dotnet-sdk-{version}`
###
PortSystem 1.0
name dotnet-cli
version 10.0.7
revision 0
categories dotnet
license MIT
maintainers @BjarneDMat {@judaew judaew} openmaintainer
description The .NET command-line interface (CLI) is a cross-platform toolchain \
for developing, building, running, and publishing .NET applications.
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.\
\
This port tracks either 'current' or 'LTS' version of dotnet-cli,\
whichever is latest.
homepage https://dotnet.microsoft.com/
platforms {darwin any} {darwin >= 19}
supported_archs x86_64 arm64
master_sites https://builds.dotnet.microsoft.com/dotnet/Runtime/${version}/
switch ${build_arch} {
x86_64 {
distname dotnet-runtime-${version}-osx-x64
checksums rmd160 6ae02ca0e972fd1cf12089549513b1353edb0a2b \
sha256 a144a1ac9fa1ba2b7c56eb975c3c7099216f90d9015db9a9fa38ad6849f556c6 \
size 35625232
}
arm64 {
distname dotnet-runtime-${version}-osx-arm64
checksums rmd160 fe72544e5060bb4ce508cd61af7755cd7c33bce6 \
sha256 eb07b63df812699ebdcba28c0a883659d41ab70a0aa1056ff2aaa3264778f63c \
size 33283652
}
default {
known_fail yes
pre-fetch {
ui_error "${subport} @ ${version} only supported for architectures ${supported_archs}"
return -code error "Unsupported architecture: ${build_arch}"
}
}
}
worksrcdir ${name}-${version}
extract.mkdir yes
use_configure no
build {}
destroot {
set dotnet_home ${prefix}/share/dotnet
set target ${destroot}${dotnet_home}
# Create the target directory
xinstall -d ${target}
# Copy over the needed elements of our directory tree
move ${worksrcpath}/dotnet \
${worksrcpath}/ThirdPartyNotices.txt \
${worksrcpath}/LICENSE.txt \
${target}
# Symlink dotnet into the bin directory
ln -s ${dotnet_home}/dotnet ${destroot}${prefix}/bin
}
set major_ver [join [lrange [split ${version} .] 0 1] .]
livecheck.type regex
livecheck.url https://dotnet.microsoft.com/download/dotnet/${major_ver}
livecheck.regex ".NET Runtime (\\d+(?:\\.\\d+)*)"