From 7bc6f3525046aae0aff9b06c2a4e8c91156a3490 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Thu, 15 Oct 2020 11:38:29 +0200 Subject: [PATCH] [dotnet] Install our workloads into the dotnet directory (as symlinks). --- Make.config | 4 +++- dotnet/Makefile | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Make.config b/Make.config index bb5ba1d4bf..cc745348b7 100644 --- a/Make.config +++ b/Make.config @@ -444,10 +444,12 @@ DOTNET_FEED_DIR ?= $(DOTNET_DESTDIR)/nuget-feed # avoid consuming a lot of disk space (since they're never automatically deleted). The system-dependencies.sh script will install locally as long # as there's a TARBALL url. DOTNET5_VERSION=5.0.100-rtm.20509.5 +DOTNET5_VERSION_BAND=$(firstword $(subst -, ,$(DOTNET5_VERSION))) DOTNET5_URL=https://dotnetcli.blob.core.windows.net/dotnet/Sdk/5.0.100-rtm.20509.5/dotnet-sdk-5.0.100-rtm.20509.5-osx-x64.pkg DOTNET5_TARBALL=https://dotnetcli.blob.core.windows.net/dotnet/Sdk/5.0.100-rtm.20509.5/dotnet-sdk-5.0.100-rtm.20509.5-osx-x64.tar.gz DOTNET5_TARBALL_NAME=$(notdir $(DOTNET5_TARBALL)) -DOTNET5=$(abspath $(TOP)/builds/downloads/$(basename $(basename $(DOTNET5_TARBALL_NAME))))/dotnet +DOTNET5_DIR=$(abspath $(TOP)/builds/downloads/$(basename $(basename $(DOTNET5_TARBALL_NAME)))) +DOTNET5=$(DOTNET5_DIR)/dotnet DOTNET5_BCL_REF_URL=https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/7d9f5c21-0d79-403f-bfe3-9a4506529760/nuget/v3/flat2/microsoft.netcore.app.ref/5.0.0-rc.1.20404.16/microsoft.netcore.app.ref.5.0.0-rc.1.20404.16.nupkg DOTNET5_BCL_REF_NAME=microsoft.netcore.app.ref.5.0.0-rc.1.20404.16.nupkg DOTNET5_BCL_DIR:=$(abspath $(TOP)/builds/downloads/$(basename $(DOTNET5_BCL_REF_NAME)))/ref/net5.0 diff --git a/dotnet/Makefile b/dotnet/Makefile index 5e5323f920..176a4e0a71 100644 --- a/dotnet/Makefile +++ b/dotnet/Makefile @@ -3,6 +3,8 @@ TOP = .. include $(TOP)/Make.config include $(TOP)/mk/rules.mk +DOTNET_MANIFESTS_PATH=$(DOTNET5_DIR)/sdk-manifests/$(DOTNET5_VERSION_BAND) + # Create variables prefixed with the correctly cased platform name from the upper-cased platform name. This makes some of the next sections somewhat simpler. $(foreach platform,$(DOTNET_PLATFORMS),$(eval $(platform)_NUGET_VERSION_NO_METADATA:=$($(shell echo $(platform) | tr a-z A-Z)_NUGET_VERSION_NO_METADATA))) @@ -30,6 +32,7 @@ DIRECTORIES += \ $(DOTNET_FEED_DIR) \ $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/Sdk) \ $(foreach platform,$(DOTNET_PLATFORMS),$(DOTNET_DESTDIR)/Microsoft.$(platform).Sdk/targets) \ + $(DOTNET_MANIFESTS_PATH) \ $(DIRECTORIES): $(Q) mkdir -p $@ @@ -148,6 +151,16 @@ pack-macos: $(RUNTIME_PACKS_MACOS) $(REF_PACK_MACOS) $(SDK_PACK_MACOS) TARGETS += $(RUNTIME_PACKS) $(REF_PACKS) $(SDK_PACKS) +define InstallWorkload +$(DOTNET_MANIFESTS_PATH)/Microsoft.NET.Workload.$1: | $(DOTNET_MANIFESTS_PATH) + $$(Q_LN) ln -Fhs $$(abspath Microsoft.NET.Workload.$1) $$(abspath $$@) + +WORKLOAD_TARGETS += \ + $(DOTNET_MANIFESTS_PATH)/Microsoft.NET.Workload.$1 \ +endef + +TARGETS += $(WORKLOAD_TARGETS) + ifdef ENABLE_DOTNET all-local:: $(TARGETS) targets/Xamarin.Shared.Sdk.Versions.props endif