65 lines
3.9 KiB
XML
65 lines
3.9 KiB
XML
<Project>
|
|
<!--
|
|
NOTE! This file gets written-over entirely by the release builds.
|
|
Any build logic in this file must be optional and only apply to non-release builds.
|
|
-->
|
|
|
|
<!-- MsBuildCache -->
|
|
<PropertyGroup>
|
|
<!-- Off by default -->
|
|
<MsBuildCacheEnabled Condition="'$(MsBuildCacheEnabled)' == ''">false</MsBuildCacheEnabled>
|
|
|
|
<!-- Always off during package restore -->
|
|
<MsBuildCacheEnabled Condition=" '$(ExcludeRestorePackageImports)' == 'true' ">false</MsBuildCacheEnabled>
|
|
|
|
<!-- In Azure pipelines, use Pipeline Caching as the cache storage backend. Otherwise, use the local cache. -->
|
|
<MSBuildCachePackageName Condition="'$(TF_BUILD)' != ''">Microsoft.MSBuildCache.AzurePipelines</MSBuildCachePackageName>
|
|
<MSBuildCachePackageName Condition="'$(MSBuildCachePackageName)' == ''">Microsoft.MSBuildCache.Local</MSBuildCachePackageName>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(MSBuildCacheEnabled)' == 'true'">
|
|
<!-- Change this to bust the cache -->
|
|
<MSBuildCacheCacheUniverse Condition="'$(MSBuildCacheCacheUniverse)' == ''">202310210737</MSBuildCacheCacheUniverse>
|
|
|
|
<!--
|
|
Visual Studio telemetry reads various ApplicationInsights.config files and other files after the project is finished, likely in a detached process.
|
|
This is acceptable and should not impact cache correctness.
|
|
-->
|
|
<MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns>
|
|
$(MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns);
|
|
\**\ApplicationInsights.config;
|
|
$(LocalAppData)\Microsoft\VSApplicationInsights\**;
|
|
$(LocalAppData)\Microsoft\Windows\INetCache\**;
|
|
A:\;
|
|
E:\;
|
|
$(windir)\**;
|
|
</MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns>
|
|
|
|
<!--
|
|
This repo uses a common output directory with many projects writing duplicate outputs. Allow everything, but note this costs some performance in the form of requiring
|
|
the cache to use copies instead of hardlinks when pulling from cache.
|
|
-->
|
|
<MSBuildCacheIdenticalDuplicateOutputPatterns>$(MSBuildCacheIdenticalDuplicateOutputPatterns);bin\**</MSBuildCacheIdenticalDuplicateOutputPatterns>
|
|
|
|
<!--
|
|
vcpkg is invoked for each and every vcxproj and each invocation uses the same base dir for logging, so allow these duplicate "outputs".
|
|
-->
|
|
<MSBuildCacheIdenticalDuplicateOutputPatterns>$(MSBuildCacheIdenticalDuplicateOutputPatterns);obj\*\vcpkg\**</MSBuildCacheIdenticalDuplicateOutputPatterns>
|
|
|
|
<!-- version of MSBuildCache is not part of the cache key -->
|
|
<PackagesConfigFile>$(MSBuildThisFileDirectory)\dep\nuget\packages.config</PackagesConfigFile>
|
|
<MSBuildCacheIgnoredInputPatterns>$(MSBuildCacheIgnoredInputPatterns);$(PackagesConfigFile)</MSBuildCacheIgnoredInputPatterns>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(MSBuildCacheEnabled)' == 'true' and '$(MSBuildCachePackageRoot)' == ''">
|
|
<PackagesConfigContents>$([System.IO.File]::ReadAllText("$(PackagesConfigFile)"))</PackagesConfigContents>
|
|
<MSBuildCachePackageVersion>$([System.Text.RegularExpressions.Regex]::Match($(PackagesConfigContents), 'Microsoft.MSBuildCache.*?version="(.*?)"').Groups[1].Value)</MSBuildCachePackageVersion>
|
|
<MSBuildCachePackageRoot>$(MSBuildThisFileDirectory)packages\$(MSBuildCachePackageName).$(MSBuildCachePackageVersion)</MSBuildCachePackageRoot>
|
|
<MSBuildCacheSharedCompilationPackageRoot>$(MSBuildThisFileDirectory)packages\Microsoft.MSBuildCache.SharedCompilation.$(MSBuildCachePackageVersion)</MSBuildCacheSharedCompilationPackageRoot>
|
|
</PropertyGroup>
|
|
|
|
<ImportGroup Condition="'$(MSBuildCacheEnabled)' == 'true'">
|
|
<Import Project="$(MSBuildCachePackageRoot)\build\$(MSBuildCachePackageName).props" />
|
|
<Import Project="$(MSBuildCacheSharedCompilationPackageRoot)\build\Microsoft.MSBuildCache.SharedCompilation.props" />
|
|
</ImportGroup>
|
|
</Project> |