Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Configuration.props
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,8 @@
<XAPackagesDir Condition=" '$(XAPackagesDir)' == '' And '$(NUGET_PACKAGES)' != ''">$(NUGET_PACKAGES)</XAPackagesDir>
<XAPackagesDir Condition=" '$(XAPackagesDir)' == '' And '$(HostOS)' == 'Windows'">$(userprofile)\.nuget\packages</XAPackagesDir>
<XAPackagesDir Condition=" '$(XAPackagesDir)' == '' And '$(HostOS)' != 'Windows'">$(HOME)/.nuget/packages</XAPackagesDir>
<_DotNetWorkloadEnvironment Condition=" '$(_DotNetUsingSharedSdk)' == 'true' ">DOTNET_CLI_HOME=$(_DotNetWorkloadUserHome);DOTNETSDK_WORKLOAD_MANIFEST_ROOTS=$(_DotNetWorkloadManifestRoot);DOTNETSDK_WORKLOAD_PACK_ROOTS=$(_DotNetWorkloadPackRoot)</_DotNetWorkloadEnvironment>
<_DotNetBuildEnvironment Condition=" '$(_DotNetUsingSharedSdk)' == 'true' ">$(_DotNetWorkloadEnvironment);NUGET_PACKAGES=$([MSBuild]::EnsureTrailingSlash('$(XAPackagesDir)'))</_DotNetBuildEnvironment>
<PathSeparator>$([System.IO.Path]::PathSeparator)</PathSeparator>
<_TestsAotName Condition=" '$(AotAssemblies)' == 'true' ">-Aot</_TestsAotName>
<_TestsProfiledAotName Condition=" '$(AndroidEnableProfiledAot)' == 'true' ">-Profiled</_TestsProfiledAotName>
Expand Down
18 changes: 17 additions & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,25 @@
<TestOutputDirectory>$(MSBuildThisFileDirectory)bin\Test$(Configuration)\</TestOutputDirectory>
<BootstrapTasksAssembly>$(BootstrapOutputDirectory)$(DotNetStableTargetFramework)\Xamarin.Android.Tools.BootstrapTasks.dll</BootstrapTasksAssembly>
<PrepTasksAssembly>$(BootstrapOutputDirectory)$(DotNetStableTargetFramework)\xa-prep-tasks.dll</PrepTasksAssembly>
<_DotNetInstallLocationFile>$(BuildOutputDirectory)dotnet-install-location.txt</_DotNetInstallLocationFile>
<_DotNetInstallLocation Condition=" '$(TF_BUILD)' == '' and '$(GITHUB_ACTIONS)' == '' and '$(CI)' == '' and Exists('$(_DotNetInstallLocationFile)') ">$([System.IO.File]::ReadAllText('$(_DotNetInstallLocationFile)').Trim())</_DotNetInstallLocation>
<_DotNetSharedInstallBase Condition=" '$(XA_DOTNET_SHARED_INSTALL_BASE)' != '' and '$(TF_BUILD)' == '' and '$(GITHUB_ACTIONS)' == '' and '$(CI)' == '' ">$([System.IO.Path]::Combine('$(MSBuildThisFileDirectory)', '$(XA_DOTNET_SHARED_INSTALL_BASE)'))</_DotNetSharedInstallBase>
<_DotNetSharedInstallPath Condition=" '$(_DotNetInstallLocation)' != '' and Exists('$(_DotNetInstallLocation)sdk\$(MicrosoftNETSdkPackageVersion)') ">$(_DotNetInstallLocation)</_DotNetSharedInstallPath>
<_DotNetSharedInstallPath Condition=" '$(_DotNetSharedInstallPath)' == '' and '$(_DotNetSharedInstallBase)' != '' ">$(_DotNetSharedInstallBase)\$(MicrosoftNETSdkPackageVersion)</_DotNetSharedInstallPath>
<_DotNetUsingSharedSdk Condition=" '$(_DotNetSharedInstallPath)' != '' ">true</_DotNetUsingSharedSdk>
<DotNetPreviewPath Condition=" '$(DotNetPreviewPath)' == '' and '$(_DotNetSharedInstallPath)' != '' ">$([MSBuild]::EnsureTrailingSlash('$(_DotNetSharedInstallPath)'))</DotNetPreviewPath>
<DotNetPreviewPath Condition=" '$(DotNetPreviewPath)' == '' ">$(BuildOutputDirectory)dotnet\</DotNetPreviewPath>
<DotNetPreviewTool Condition=" '$(DotNetPreviewTool)' == '' and Exists('$(DotNetPreviewPath)') ">$(DotNetPreviewPath)dotnet</DotNetPreviewTool>
<DotNetPreviewTool Condition=" '$(DotNetPreviewTool)' == '' and (Exists('$(DotNetPreviewPath)dotnet') or Exists('$(DotNetPreviewPath)dotnet.exe')) ">$(DotNetPreviewPath)dotnet</DotNetPreviewTool>
<DotNetPreviewTool Condition=" '$(DotNetPreviewTool)' == '' ">dotnet</DotNetPreviewTool>
<_DotNetWorkloadPackRoot Condition=" '$(_DotNetUsingSharedSdk)' == 'true' ">$(BuildOutputDirectory)lib\</_DotNetWorkloadPackRoot>
<_DotNetWorkloadPackRoot Condition=" '$(_DotNetWorkloadPackRoot)' == '' ">$(DotNetPreviewPath)</_DotNetWorkloadPackRoot>
<_DotNetWorkloadManifestRoot Condition=" '$(_DotNetUsingSharedSdk)' == 'true' ">$(_DotNetWorkloadPackRoot)sdk-manifests\</_DotNetWorkloadManifestRoot>
<_DotNetWorkloadManifestRoot Condition=" '$(_DotNetWorkloadManifestRoot)' == '' ">$(DotNetPreviewPath)sdk-manifests\</_DotNetWorkloadManifestRoot>
<_DotNetWorkloadUserHome Condition=" '$(_DotNetUsingSharedSdk)' == 'true' ">$(BuildOutputDirectory)dotnet-home\</_DotNetWorkloadUserHome>
<_DotNetWorkloadUserProfileRoot Condition=" '$(_DotNetUsingSharedSdk)' == 'true' ">$(_DotNetWorkloadUserHome).dotnet\</_DotNetWorkloadUserProfileRoot>
<_DotNetWorkloadUserProfileRoot Condition=" '$(_DotNetWorkloadUserProfileRoot)' == '' ">$(DotNetPreviewPath)</_DotNetWorkloadUserProfileRoot>
<_DotNetWorkloadUserManifestRoot>$(_DotNetWorkloadUserProfileRoot)sdk-manifests\</_DotNetWorkloadUserManifestRoot>
<_DotNetWorkloadUserPackRoot>$(_DotNetWorkloadUserProfileRoot)packs\</_DotNetWorkloadUserPackRoot>
<!-- Copy PackageReference content to OutputDir for our build tasks, tests, and installer creation logic. This no longer happens by default in short-form projects. -->
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<!-- Ensure reference assemblies copied to bin -->
Expand Down
19 changes: 17 additions & 2 deletions Documentation/building/unix/instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,21 @@ on Windows, many of the concepts should still apply:
`make prepare` provisions a specific build of .NET to
`bin/$(Configuration)/dotnet`.

To share the provisioned SDK between multiple worktrees, set
`XA_DOTNET_SHARED_INSTALL_BASE` to a common base directory before running
`make prepare`:

$ export XA_DOTNET_SHARED_INSTALL_BASE="$HOME/android-dotnet-sdk"
$ make prepare

The SDK will be installed under
`$XA_DOTNET_SHARED_INSTALL_BASE/<sdk-version>`, shared by Debug and Release
builds. The shared SDK is treated as read-only after provisioning; workload
packs, manifests, and installation state remain under `bin/$(Configuration)`.
The override is ignored when `TF_BUILD`, `GITHUB_ACTIONS`, or `CI` is set, so
CI builds and local builds without `XA_DOTNET_SHARED_INSTALL_BASE` continue to
use `bin/$(Configuration)/dotnet`.

Once `make all` or `make jenkins` have completed, your local
`bin/$(Configuration)/lib/packs` directory will be populated with a
local Android "workload" in `Microsoft.Android.Sdk.$(HostOS)` matching
Expand All @@ -78,8 +93,8 @@ Build the project with:

$ ./dotnet-local.sh build foo.csproj

Using the `dotnet-local` script will execute the `dotnet` provisioned in
`bin/$(Configuration)/dotnet` and will use the locally built binaries.
Using the `dotnet-local` script will execute the provisioned `dotnet` and
will use the locally built binaries.

See the [One .NET Documentation](../../guides/OneDotNet.md) for further details.

Expand Down
19 changes: 17 additions & 2 deletions Documentation/building/windows/instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,23 @@ Or in powershell:

> dotnet-local.cmd build foo.csproj

Using the `dotnet-local` script will execute the `dotnet` provisioned in
`bin\$(Configuration)\dotnet` and will use the locally built binaries.
Using the `dotnet-local` script will execute the provisioned `dotnet` and
will use the locally built binaries.

To share the provisioned SDK between multiple worktrees, set
`XA_DOTNET_SHARED_INSTALL_BASE` to a common base directory before running the
`Prepare` target:

$env:XA_DOTNET_SHARED_INSTALL_BASE = Join-Path $HOME 'android-dotnet-sdk'
dotnet msbuild Xamarin.Android.slnx -t:Prepare

The SDK will be installed under
`$env:XA_DOTNET_SHARED_INSTALL_BASE\<sdk-version>`, shared by Debug and Release
builds. The shared SDK is treated as read-only after provisioning; workload
packs, manifests, and installation state remain under `bin\$(Configuration)`.
The override is ignored when `TF_BUILD`, `GITHUB_ACTIONS`, or `CI` is set, so
CI builds and local builds without `XA_DOTNET_SHARED_INSTALL_BASE` continue to
use `bin\$(Configuration)\dotnet`.

See the [One .NET Documentation](../../guides/OneDotNet.md) for further details.

Expand Down
4 changes: 3 additions & 1 deletion build-tools/create-packs/ConfigureLocalWorkload.targets
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@
<_LocalSdkManifestsFolder>$(BuildOutputDirectory)lib\sdk-manifests\$(_LocalSdkFeatureBand)\</_LocalSdkManifestsFolder>
<_LocalAndroidManifestFolder>$(_LocalSdkManifestsFolder)microsoft.net.sdk.android\$(AndroidPackVersionLong)\</_LocalAndroidManifestFolder>
<_EmptyWorkloadDir>$(_LocalSdkManifestsFolder)android.deps.workload\0.0.1\</_EmptyWorkloadDir>
<_InstallManifestEnvironment Condition=" '$(_DotNetUsingSharedSdk)' == 'true' ">$(_DotNetBuildEnvironment)</_InstallManifestEnvironment>
<_InstallManifestEnvironment Condition=" '$(_InstallManifestEnvironment)' == '' ">DOTNETSDK_WORKLOAD_MANIFEST_ROOTS=$(BuildOutputDirectory)lib\sdk-manifests</_InstallManifestEnvironment>
</PropertyGroup>

<MakeDir Directories="$(_LocalAndroidManifestFolder)" />
Expand Down Expand Up @@ -128,7 +130,7 @@
/>
<Exec
Command="&quot;$(DotNetPreviewTool)&quot; workload install android-deps --configfile &quot;$(XamarinAndroidSourcePath)NuGet.config&quot; --skip-manifest-update --skip-sign-check --verbosity diag"
EnvironmentVariables="DOTNETSDK_WORKLOAD_MANIFEST_ROOTS=$(BuildOutputDirectory)lib\sdk-manifests"
EnvironmentVariables="$(_InstallManifestEnvironment)"
WorkingDirectory="$(XamarinAndroidSourcePath)"
/>
<RemoveDir Directories="$(_EmptyWorkloadDir)" />
Expand Down
29 changes: 15 additions & 14 deletions build-tools/create-packs/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
<_WLManifest Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\nuget-unsigned\Microsoft.NET.Sdk.Android.Manifest-*.nupkg" />
</ItemGroup>
<PropertyGroup>
<_SdkManifestsFolder>$(DotNetPreviewPath)sdk-manifests\$(DotNetSdkManifestsFolder)\</_SdkManifestsFolder>
<_SdkManifestsFolder>$(_DotNetWorkloadUserManifestRoot)$(DotNetSdkManifestsFolder)\</_SdkManifestsFolder>
</PropertyGroup>
<Unzip
SourceFiles="@(_WLManifest)"
Expand Down Expand Up @@ -136,9 +136,10 @@
<_InstallArguments Include="--source &quot;%(_NuGetSources.Identity)&quot;" />
<_InstallArguments Include="--temp-dir &quot;$(_TempDirectory)&quot;" />
</ItemGroup>
<MakeDir Directories="$(_TempDirectory);$(BuildOutputDirectory)lib\sdk-manifests" />
<MakeDir Directories="$(_TempDirectory);$(_DotNetWorkloadManifestRoot)" />
<Exec
Command="&quot;$(DotNetPreviewTool)&quot; workload install @(_InstallArguments, ' ')"
EnvironmentVariables="$(_DotNetBuildEnvironment)"
WorkingDirectory="$(_TempDirectory)"
/>
<RemoveDir Directories="$(_TempDirectory)" />
Expand All @@ -151,18 +152,18 @@
<_PackApiLevels Include="$(AndroidLatestUnstableApiLevel)" />
</ItemGroup>
<ItemGroup>
<_PackFoldersToDelete Include="$(DotNetPreviewPath)metadata" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)sdk-manifests\$(DotNetSdkManifestsFolder)\workloadsets" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)sdk-manifests\$(DotNetSdkManifestsFolder)\microsoft.net.sdk.android" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android.Ref.%(_PackApiLevels.Identity)" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android.Runtime.Mono.%(_PackApiLevels.Identity).android-arm" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android.Runtime.Mono.%(_PackApiLevels.Identity).android-arm64" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android.Runtime.Mono.%(_PackApiLevels.Identity).android-x86" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android.Runtime.Mono.%(_PackApiLevels.Identity).android-x64" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android.Sdk.Darwin" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android.Sdk.Linux" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)packs\Microsoft.Android.Sdk.Windows" />
<_PackFoldersToDelete Include="$(DotNetPreviewPath)template-packs" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserProfileRoot)metadata" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserManifestRoot)$(DotNetSdkManifestsFolder)\workloadsets" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserManifestRoot)$(DotNetSdkManifestsFolder)\microsoft.net.sdk.android" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserPackRoot)Microsoft.Android.Ref.%(_PackApiLevels.Identity)" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserPackRoot)Microsoft.Android.Runtime.Mono.%(_PackApiLevels.Identity).android-arm" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserPackRoot)Microsoft.Android.Runtime.Mono.%(_PackApiLevels.Identity).android-arm64" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserPackRoot)Microsoft.Android.Runtime.Mono.%(_PackApiLevels.Identity).android-x86" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserPackRoot)Microsoft.Android.Runtime.Mono.%(_PackApiLevels.Identity).android-x64" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserPackRoot)Microsoft.Android.Sdk.Darwin" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserPackRoot)Microsoft.Android.Sdk.Linux" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserPackRoot)Microsoft.Android.Sdk.Windows" />
<_PackFoldersToDelete Include="$(_DotNetWorkloadUserProfileRoot)template-packs" />
</ItemGroup>
<RemoveDir Directories="@(_PackFoldersToDelete)" />
</Target>
Expand Down
10 changes: 6 additions & 4 deletions build-tools/scripts/DotNet.targets
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
<!-- Build out of process so NuGet-generated props are evaluated after restore. -->
<Exec
Command="&quot;$(DotNetPreviewTool)&quot; build &quot;$(_Root)src\openjdk\openjdk.csproj&quot; -p:Configuration=$(Configuration) -bl:$(_BinlogPathPrefix)-openjdk.binlog"
EnvironmentVariables="$(_DotNetBuildEnvironment)"
WorkingDirectory="$(_Root)"
/>
</Target>
Expand All @@ -25,6 +26,7 @@
DependsOnTargets="PrepareOpenJDK">
<Exec
Command="&quot;$(DotNetPreviewTool)&quot; build -t:Prepare Java.Interop.slnx -c $(Configuration) -p:JdksRoot=$(JavaSdkDirectory) -p:DotnetToolPath=$(DotNetPreviewTool) -bl:$(_BinlogPathPrefix)-prepare-java-interop.binlog"
EnvironmentVariables="$(_DotNetBuildEnvironment)"
WorkingDirectory="$(_Root)external\Java.Interop"
/>
</Target>
Expand Down Expand Up @@ -92,7 +94,7 @@
<Target Name="InstallMaui">
<Error Text="%24(MauiVersion) must be specified." Condition=" '$(MauiVersion)' == '' and '$(MauiUseLocalPacks)' != 'true' " />
<PropertyGroup>
<_TempDirectory>$(DotNetPreviewPath)..\.xa-workload-temp-$([System.IO.Path]::GetRandomFileName())</_TempDirectory>
<_TempDirectory>$(BuildOutputDirectory)obj\.xa-workload-temp-$([System.IO.Path]::GetRandomFileName())</_TempDirectory>
<MauiVersionBand Condition=" '$(MauiVersionBand)' == '' ">$(DotNetSdkManifestsFolder)</MauiVersionBand>
</PropertyGroup>
<MakeDir Directories="$(_TempDirectory)" />
Expand All @@ -102,7 +104,7 @@
Condition=" '$(MauiUseLocalPacks)' != 'true' "
Command="&quot;$(DotNetPreviewTool)&quot; restore maui.proj -p:MauiVersion=$(MauiVersion) -p:MauiVersionBand=$(MauiVersionBand)"
WorkingDirectory="$(MSBuildThisFileDirectory)"
EnvironmentVariables="NUGET_PACKAGES=$(_TempDirectory);DOTNET_MULTILEVEL_LOOKUP=0"
EnvironmentVariables="NUGET_PACKAGES=$(_TempDirectory);DOTNET_MULTILEVEL_LOOKUP=0;$(_DotNetWorkloadEnvironment)"
/>
<ItemGroup>
<_WLManifestPack Include="$(MauiPackagePath)\Microsoft.NET.Sdk.Maui.Manifest-$(MauiVersionBand.Substring (0,3))*.nupkg" />
Expand All @@ -120,7 +122,7 @@
</ItemGroup>
<!-- Copy manifest to diagnostics folder if specified -->
<Copy Condition=" '$(MauiManifestDiagnosticsPath)' != '' " SourceFiles="@(_WLManifest)" DestinationFolder="$(MauiManifestDiagnosticsPath)" />
<Copy SourceFiles="@(_WLManifest)" DestinationFolder="$(DotNetPreviewPath)sdk-manifests\$(DotNetSdkManifestsFolder)\microsoft.net.sdk.maui" />
<Copy SourceFiles="@(_WLManifest)" DestinationFolder="$(_DotNetWorkloadUserManifestRoot)$(DotNetSdkManifestsFolder)\microsoft.net.sdk.maui" />

<!-- Parse NuGet.config -->
<XmlPeek
Expand All @@ -147,7 +149,7 @@
<Exec
Command="&quot;$(DotNetPreviewTool)&quot; workload install $(MauiWorkloadToInstall) @(_InstallArguments, ' ')"
WorkingDirectory="$(_TempDirectory)"
EnvironmentVariables="DOTNET_MULTILEVEL_LOOKUP=0"
EnvironmentVariables="DOTNET_MULTILEVEL_LOOKUP=0;$(_DotNetBuildEnvironment)"
/>
<RemoveDir Directories="$(_TempDirectory)" />
</Target>
Expand Down
2 changes: 2 additions & 0 deletions build-tools/scripts/Prepare.proj
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,12 @@
<!-- Build out of process so NuGet-generated props are evaluated after restore. -->
<Exec
Command="&quot;$(DotNetPreviewTool)&quot; build &quot;$(_TopDir)\build-tools\Xamarin.Android.Tools.BootstrapTasks\Xamarin.Android.Tools.BootstrapTasks.csproj&quot; -p:Configuration=$(Configuration) -bl:$(_BinlogPathPrefix)-bootstrap-tasks.binlog"
EnvironmentVariables="$(_DotNetBuildEnvironment)"
WorkingDirectory="$(_TopDir)"
/>
<Exec
Command="&quot;$(DotNetPreviewTool)&quot; build &quot;$(_TopDir)\src\workloads\workloads.csproj&quot; -p:Configuration=$(Configuration) -bl:$(_BinlogPathPrefix)-workloads.binlog"
EnvironmentVariables="$(_DotNetBuildEnvironment)"
WorkingDirectory="$(_TopDir)"
/>
<CallTarget Targets="PrepareJavaInterop" />
Expand Down
20 changes: 18 additions & 2 deletions build-tools/scripts/msbuild.mk
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,26 @@
# $(MSBUILD_FLAGS): Additional MSBuild flags; contains $(CONFIGURATION), $(V), $(MSBUILD_ARGS).

MSBUILD = msbuild
DOTNET_ROOT = $(topdir)/bin/$(CONFIGURATION)/dotnet/
DOTNET_INSTALL_LOCATION = $(topdir)/bin/$(CONFIGURATION)/dotnet-install-location.txt
Comment thread
simonrozsival marked this conversation as resolved.
DOTNET_SDK_VERSION = $(shell sed -n 's|.*<MicrosoftNETSdkPackageVersion>\([^<]*\)</MicrosoftNETSdkPackageVersion>.*|\1|p' "$(topdir)/eng/Versions.props" | head -n 1)
ifeq ($(strip $(TF_BUILD)$(GITHUB_ACTIONS)$(CI)),)
_DOTNET_SHARED_ROOT = $(if $(wildcard $(DOTNET_INSTALL_LOCATION)),$(shell root=$$(cat "$(DOTNET_INSTALL_LOCATION)"); test -x "$${root}dotnet" && test -d "$${root}sdk/$(DOTNET_SDK_VERSION)" && printf '%s' "$$root"))
endif
DOTNET_ROOT = $(if $(_DOTNET_SHARED_ROOT),$(_DOTNET_SHARED_ROOT),$(topdir)/bin/$(CONFIGURATION)/dotnet/)
DOTNET_TOOL = $(DOTNET_ROOT)dotnet
DOTNET_VERB = build
MSBUILD_FLAGS = /p:Configuration=$(CONFIGURATION) $(MSBUILD_ARGS)
ifneq ($(_DOTNET_SHARED_ROOT),)
DOTNET_CLI_HOME = $(topdir)/bin/$(CONFIGURATION)/dotnet-home
DOTNETSDK_WORKLOAD_MANIFEST_ROOTS = $(topdir)/bin/$(CONFIGURATION)/lib/sdk-manifests
DOTNETSDK_WORKLOAD_PACK_ROOTS = $(topdir)/bin/$(CONFIGURATION)/lib
NUGET_PACKAGES := $(patsubst %/,%,$(if $(NUGET_PACKAGES),$(NUGET_PACKAGES),$(HOME)/.nuget/packages))/

export DOTNET_CLI_HOME
export DOTNETSDK_WORKLOAD_MANIFEST_ROOTS
export DOTNETSDK_WORKLOAD_PACK_ROOTS
export NUGET_PACKAGES
endif

ifeq ($(OS_NAME),Darwin)
_PKG_CONFIG = /Library/Frameworks/Mono.framework/Commands/pkg-config
Expand All @@ -52,7 +68,7 @@ endef

# $(call DOTNET_BINLOG,name,build=$(DOTNET_VERB),dotnet=$(DOTNET_TOOL))
define DOTNET_BINLOG
$(if $(3),,PATH="$(DOTNET_ROOT):$(PATH)") $(if $(3),$(3),$(DOTNET_TOOL)) $(if $(2),$(2),$(DOTNET_VERB)) -p:Configuration=$(CONFIGURATION) -v:n $(MSBUILD_ARGS) \
$(if $(3),,PATH="$(DOTNET_ROOT):$(PATH)") $(if $(3),$(3),"$(DOTNET_TOOL)") $(if $(2),$(2),$(DOTNET_VERB)) -p:Configuration=$(CONFIGURATION) -v:n $(MSBUILD_ARGS) \
-bl:"$(dir $(realpath $(firstword $(MAKEFILE_LIST))))/bin/Build$(CONFIGURATION)/msbuild-`date +%Y%m%dT%H%M%S`-$(1).binlog"
endef

Expand Down
Loading
Loading