2024-01-06 00:43:24 +01:00
<Project>
2021-06-24 16:36:04 -05:00
2024-01-11 20:10:28 +01:00
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets, $(MSBuildThisFileDirectory)..))" />
<PropertyGroup>
<BuildCommand Condition="'$(BuildCommand)' == '' and '$(IsUtilityProject)' != 'true'">$(BuildScript) $(BuildActions) $(BuildArgs)</BuildCommand>
<!-- The default PackageVersionPropsFlowType behavior (DependenciesOnly) triggers logic that looks for a
Version.Details.xml file. Setting the type to AllPackages will skip that logic. -->
<PackageVersionPropsFlowType Condition="'$(IsUtilityProject)' == 'true'">AllPackages</PackageVersionPropsFlowType>
<!-- MinimalConsoleLogOutput determines if the repository build should be logged to a separate file or directly to the console. -->
<RepoConsoleLogFile>$(ArtifactsLogDir)$(RepositoryName).log</RepoConsoleLogFile>
<MinimalConsoleLogOutput Condition="'$(MinimalConsoleLogOutput)' == '' and '$(ContinuousIntegrationBuild)' == 'true'">true</MinimalConsoleLogOutput>
<PackageReportDataFile>$(PackageReportDir)prebuilt-usage.xml</PackageReportDataFile>
<ProjectAssetsJsonArchiveFile>$(PackageReportDir)all-project-assets-json-files.zip</ProjectAssetsJsonArchiveFile>
<ProdConManifestFile>$(PackageReportDir)prodcon-build.xml</ProdConManifestFile>
</PropertyGroup>
2021-06-24 16:36:04 -05:00
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="AddSourceToNuGetConfig" />
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ReadNuGetPackageInfos" />
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="RemoveInternetSourcesFromNuGetConfig" />
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="UpdateJson" />
2022-05-13 14:52:42 -05:00
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="UpdateNuGetConfigPackageSourcesMappings" />
2021-06-24 16:36:04 -05:00
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ValidateUsageAgainstBaseline" />
2023-01-17 09:45:40 -08:00
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WritePackageVersionsProps" />
2021-06-24 16:36:04 -05:00
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WritePackageUsageData" />
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WriteUsageReports" />
2023-11-17 07:26:10 -06:00
2024-01-11 20:10:28 +01:00
<!-- Update NuGet feeds in the repo -->
2021-06-24 16:36:04 -05:00
<Target Name="UpdateNuGetConfig"
BeforeTargets="Build"
2024-01-11 20:10:28 +01:00
Condition="'$(NuGetConfigFile)' != '' or '@(NuGetConfigFiles)' != ''"
2021-06-24 16:36:04 -05:00
Inputs="$(MSBuildProjectFullPath)"
2024-01-11 20:10:28 +01:00
Outputs="$(BaseIntermediateOutputPath)UpdateNuGetConfig.complete">
2022-05-13 14:52:42 -05:00
<PropertyGroup>
<SourceBuiltNuGetSourceName>source-built</SourceBuiltNuGetSourceName>
<ExtraSourcesNuGetSourceName>ExtraSources</ExtraSourcesNuGetSourceName>
2024-01-11 20:10:28 +01:00
<SourceBuildSources>$(SourceBuiltNuGetSourceName)</SourceBuildSources>
2022-05-13 14:52:42 -05:00
<SourceBuildSources Condition="'$(ExtraRestoreSourcePath)' != ''">$(SourceBuildSources);$(ExtraSourcesNuGetSourceName)</SourceBuildSources>
</PropertyGroup>
2024-01-11 20:10:28 +01:00
<PropertyGroup Condition="'$(DotNetBuildFromSource)' == 'true'">
<PrebuiltNuGetSourceName>prebuilt</PrebuiltNuGetSourceName>
<PreviouslySourceBuiltNuGetSourceName>previously-source-built</PreviouslySourceBuiltNuGetSourceName>
<ReferencePackagesNuGetSourceName>reference-packages</ReferencePackagesNuGetSourceName>
<SourceBuildSources>$(SourceBuildSources);$(PrebuiltNuGetSourceName);$(PreviouslySourceBuiltNuGetSourceName);$(ReferencePackagesNuGetSourceName)</SourceBuildSources>
</PropertyGroup>
2022-05-13 14:52:42 -05:00
2021-06-24 16:36:04 -05:00
<!-- Update the detected or manually specified NuGetConfigFile, but also allow multiple. -->
<ItemGroup>
<NuGetConfigFiles Include="$(NuGetConfigFile)" />
</ItemGroup>
2021-07-09 16:42:42 -05:00
<RemoveInternetSourcesFromNuGetConfig
2021-06-24 16:36:04 -05:00
NuGetConfigFile="%(NuGetConfigFiles.Identity)"
2021-07-09 16:42:42 -05:00
BuildWithOnlineSources="$(BuildWithOnlineSources)"
2024-01-11 20:10:28 +01:00
KeepFeedPrefixes="@(KeepFeedPrefixes)"
Condition="'$(DotNetBuildFromSource)' == 'true'" />
2021-06-24 16:36:04 -05:00
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
2022-05-13 14:52:42 -05:00
SourceName="$(PrebuiltNuGetSourceName)"
2021-06-24 16:36:04 -05:00
SourcePath="$(PrebuiltPackagesPath)"
2024-01-11 20:10:28 +01:00
Condition="'$(DotNetBuildFromSource)' == 'true'" />
2021-06-24 16:36:04 -05:00
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
2022-05-13 14:52:42 -05:00
SourceName="$(PreviouslySourceBuiltNuGetSourceName)"
2021-06-24 16:36:04 -05:00
SourcePath="$(PrebuiltSourceBuiltPackagesPath)"
2024-01-11 20:10:28 +01:00
Condition="'$(DotNetBuildFromSource)' == 'true'" />
2021-06-24 16:36:04 -05:00
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
2022-05-13 14:52:42 -05:00
SourceName="$(ReferencePackagesNuGetSourceName)"
2021-06-24 16:36:04 -05:00
SourcePath="$(ReferencePackagesDir)"
2024-01-11 20:10:28 +01:00
Condition="'$(DotNetBuildFromSource)' == 'true'" />
2021-06-24 16:36:04 -05:00
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
2022-05-13 14:52:42 -05:00
SourceName="$(SourceBuiltNuGetSourceName)"
2021-06-24 16:36:04 -05:00
SourcePath="$(SourceBuiltPackagesPath)" />
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
2022-05-13 14:52:42 -05:00
SourceName="$(ExtraSourcesNuGetSourceName)"
2021-06-24 16:36:04 -05:00
SourcePath="$(ExtraRestoreSourcePath)"
Condition="'$(ExtraRestoreSourcePath)' != ''" />
2022-05-13 14:52:42 -05:00
<UpdateNuGetConfigPackageSourcesMappings
NuGetConfigFile="%(NuGetConfigFiles.Identity)"
BuildWithOnlineSources="$(BuildWithOnlineSources)"
SourceBuildSources="$(SourceBuildSources)" />
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)UpdateNuGetConfig.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
2021-06-24 16:36:04 -05:00
</Target>
2024-01-11 20:10:28 +01:00
<!-- Update the SDK version in the repo's global.json file.
This guarantees that all repositories build with the VMR's SDK version. -->
2021-06-24 16:36:04 -05:00
<Target Name="UpdateGlobalJsonVersions"
BeforeTargets="Build"
Condition="'$(GlobalJsonFile)' != ''"
2024-01-11 20:10:28 +01:00
Inputs="$(MSBuildProjectFullPath);$(MSBuildThisFileFullPath)"
Outputs="$(BaseIntermediateOutputPath)UpdateGlobalJsonVersions.complete">
2021-06-24 16:36:04 -05:00
<ItemGroup>
2024-01-11 20:10:28 +01:00
<_PossibleCliVersionJsonPath Include="sdk:version" />
<_PossibleCliVersionJsonPath Include="tools:dotnet" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
<UpdateJson JsonFilePath="$(GlobalJsonFile)"
PathToAttribute="%(_PossibleCliVersionJsonPath.Identity)"
2024-01-11 20:10:28 +01:00
NewAttributeValue="$(NETCoreSdkVersion)"
SkipUpdateIfMissingKey="true" />
<!-- VB PoC, remove the global runtimes until https://github.com/dotnet/arcade/issues/14283 is resolved. -->
<UpdateJson JsonFilePath="$(GlobalJsonFile)"
PathToAttribute="tools:runtimes"
2021-06-24 16:36:04 -05:00
SkipUpdateIfMissingKey="true" />
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)UpdateGlobalJsonVersions.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
</Target>
<!-- TODO: Remove when all repos use a consistent set of eng/common files: https://github.com/dotnet/source-build/issues/3710. -->
<Target Name="UpdateEngCommonFiles"
2024-01-16 15:29:50 +01:00
Condition="'$(UpdateEngCommonFiles)' == 'true' or '$(DotNetBuildVertical)' == 'true'"
2024-01-11 20:10:28 +01:00
BeforeTargets="Build">
<ItemGroup>
2024-01-16 15:29:50 +01:00
<OrchestratorEngCommonFile Include="$(RepositoryEngineeringDir)common\**\*" />
2024-01-11 20:10:28 +01:00
</ItemGroup>
2024-01-16 15:29:50 +01:00
<Copy SourceFiles="@(OrchestratorEngCommonFile)"
2024-01-11 20:10:28 +01:00
DestinationFolder="$(ProjectDirectory)eng\common\%(RecursiveDir)"
SkipUnchangedFiles="true" />
2021-06-24 16:36:04 -05:00
</Target>
2023-01-17 09:45:40 -08:00
<!-- Before a repository builds, set up the version property files that override the repo's defaults.
There are 3 files generated -->
<Target Name="CreateBuildInputProps"
2021-06-24 16:36:04 -05:00
BeforeTargets="Build"
Inputs="$(MSBuildProjectFullPath)"
2024-01-11 20:10:28 +01:00
Outputs="$(BaseIntermediateOutputPath)CreateBuildInputProps.complete">
2021-06-24 16:36:04 -05:00
<ItemGroup>
2023-01-17 09:45:40 -08:00
<_CurrentSourceBuiltPackages Include="$(SourceBuiltPackagesPath)*.nupkg"
Exclude="$(SourceBuiltPackagesPath)*.symbols.nupkg" />
2024-01-08 15:22:15 +01:00
<_PreviouslyBuiltSourceBuiltPackages Include="$(PrebuiltSourceBuiltPackagesPath)*.nupkg" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
2023-01-17 09:45:40 -08:00
<Error Condition="'$(PackageVersionPropsFlowType)' != 'AllPackages' and '$(PackageVersionPropsFlowType)' != 'DependenciesOnly'"
Text="Invalid PackageVersionPropsFlowType '$(PackageVersionPropsFlowType)'. Must be 'AllPackages' or 'DependenciesOnly'." />
<PropertyGroup>
<_VersionDetailsXml Condition="'$(PackageVersionPropsFlowType)' == 'DependenciesOnly'">$(ProjectDirectory)/eng/Version.Details.xml</_VersionDetailsXml>
</PropertyGroup>
<!-- Write the build input properties, then save off a copy that will be used for generating usage reports later -->
<WritePackageVersionsProps NuGetPackages="@(_CurrentSourceBuiltPackages)"
2023-02-07 08:03:21 -08:00
ExtraProperties="@(ExtraPackageVersionPropsPackageInfo)"
VersionPropsFlowType="$(PackageVersionPropsFlowType)"
VersionDetails="$(_VersionDetailsXml)"
OutputPath="$(CurrentSourceBuiltPackageVersionPropsPath)" />
2021-06-24 16:36:04 -05:00
2023-01-17 09:45:40 -08:00
<!-- Create previously source-built inputs info -->
<WritePackageVersionsProps NuGetPackages="@(_PreviouslyBuiltSourceBuiltPackages)"
2023-02-07 08:03:21 -08:00
VersionPropsFlowType="$(PackageVersionPropsFlowType)"
VersionDetails="$(_VersionDetailsXml)"
OutputPath="$(PreviouslySourceBuiltPackageVersionPropsPath)" />
<!-- Write a full package version props (unfiltered) that will be used to track which repo creates a package.
Because not all repos implement the repo API (e.g. some are external), it's difficult to consistently gather
a list of packages from the output of each repo. This may be an area for improvement later.
Instead, we rely on the package version props file that is built up
before each build. If the full list of packages grows by package A, B and C between repo Y and Z, then Y produced
A B and C.
A key element of this algorith is that we must write the full package version props and not the filtered version. -->
<WritePackageVersionsProps NuGetPackages="@(_CurrentSourceBuiltPackages)"
VersionPropsFlowType="AllPackages"
OutputPath="$(SnapshotPackageVersionPropsPath)" />
2021-06-24 16:36:04 -05:00
2023-01-17 09:45:40 -08:00
<!-- Write a single file that contains imports for both the current and previously built packages -->
<PropertyGroup>
<PackageVersionsPropsContents>
2024-01-11 20:10:28 +01:00
<![CDATA[
<Project>
2023-01-17 09:45:40 -08:00
<Import Project="$(PreviouslySourceBuiltPackageVersionPropsPath)" />
<Import Project="$(CurrentSourceBuiltPackageVersionPropsPath)" />
</Project>
]]>
</PackageVersionsPropsContents>
</PropertyGroup>
<WriteLinesToFile File="$(PackageVersionPropsPath)"
Lines="$(PackageVersionsPropsContents)"
Overwrite="true" />
<Message Importance="High" Text="$(RepositoryName) using package version properties saved at $(CurrentSourceBuiltPackageVersionPropsPath) and $(PreviouslySourceBuiltPackageVersionPropsPath)" />
2021-06-24 16:36:04 -05:00
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)CreateBuildInputProps.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
</Target>
<!-- SkipRepoReferences is a developer innerloop switch to skip building dependencies. -->
<Target Name="BuildRepoReferences"
Condition="'@(RepositoryReference)' != '' and '$(SkipRepoReferences)' != 'true'">
<Message Importance="High" Text="Building dependencies [@(RepositoryReference)] needed by '$(RepositoryName)'." />
<ItemGroup>
<_DependentProject Include="@(RepositoryReference -> '%(Identity).proj')" />
</ItemGroup>
<MSBuild Projects="@(_DependentProject)"
Targets="Build"
BuildInParallel="$(BuildInParallel)"
StopOnFirstFailure="true" />
2021-06-24 16:36:04 -05:00
</Target>
<Target Name="Build"
DependsOnTargets="BuildRepoReferences"
Inputs="$(MSBuildProjectFullPath)"
2024-01-11 20:10:28 +01:00
Outputs="$(BaseIntermediateOutputPath)Build.complete">
<Exec Command="$(DotnetTool) build-server shutdown" />
2023-02-09 07:34:07 -06:00
2024-01-11 20:10:28 +01:00
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Building $(RepositoryName)" />
<Message Importance="High" Text="Running command:" Condition="'$(BuildCommand)' != ''" />
2023-02-16 12:40:45 -06:00
<Message Importance="High" Text=" $(BuildCommand)" Condition="'$(BuildCommand)' != ''" />
2024-01-11 20:10:28 +01:00
<Message Importance="High" Text=" Log: $(RepoConsoleLogFile)" Condition="'$(BuildCommand)' != '' and '$(MinimalConsoleLogOutput)' == 'true'" />
<Message Importance="High" Text=" With Environment Variables:" Condition="'$(BuildCommand)' != ''" />
<Message Importance="High" Text=" %(EnvironmentVariables.Identity)" Condition="'$(BuildCommand)' != ''" />
2021-06-24 16:36:04 -05:00
<CallTarget Targets="RepoBuild" />
2024-01-11 20:10:28 +01:00
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Building $(RepositoryName)...done" />
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)Build.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
2021-06-24 16:36:04 -05:00
<OnError ExecuteTargets="ReportRepoError" />
</Target>
2024-01-11 20:10:28 +01:00
<Target Name="RepoBuild"
Condition="'$(BuildCommand)' != ''">
<Message Text="DirSize Before Building $(RepositoryName)" Importance="High"
Condition=" '$(CleanWhileBuilding)' == 'true' and '$(BuildOS)' != 'windows'" />
<Exec Command="df -h $(RepoRoot)"
Condition=" '$(CleanWhileBuilding)' == 'true' and '$(BuildOS)' != 'windows'" />
2021-06-24 16:36:04 -05:00
<PropertyGroup>
2024-01-11 20:10:28 +01:00
<FullCommand>$(BuildCommand)</FullCommand>
<FullCommand Condition="'$(LogVerbosityOptOut)' != 'true'">$(FullCommand) /v:$(LogVerbosity)</FullCommand>
<FullCommand Condition="'$(MinimalConsoleLogOutput)' == 'true'">$(FullCommand) >> $(RepoConsoleLogFile) 2>&1</FullCommand>
2021-06-24 16:36:04 -05:00
</PropertyGroup>
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('$(RepoConsoleLogFile)'));
$(SourceBuiltPackagesPath)" />
<!-- Create directories for extra debugging. -->
<MakeDir Directories="$(MSBuildDebugPathTargetDir);
$(RoslynDebugPathTargetDir);
$(AspNetRazorBuildServerLogDir)"
Condition="'$(EnableExtraDebugging)' == 'true'" />
2021-06-24 16:36:04 -05:00
<Exec Command="$(FullCommand)"
WorkingDirectory="$(ProjectDirectory)"
EnvironmentVariables="@(EnvironmentVariables)"
IgnoreStandardErrorWarningFormat="true" />
</Target>
<Target Name="ReportRepoError">
2024-01-11 20:10:28 +01:00
<Message Importance="High" Text="$([System.IO.File]::ReadAllText('$(RepoConsoleLogFile)'))" Condition="Exists('$(RepoConsoleLogFile)') and '$(MinimalConsoleLogOutput)' == 'true'" />
2021-06-24 16:36:04 -05:00
<Message Importance="High" Text="'$(RepositoryName)' failed during build." />
2024-01-11 20:10:28 +01:00
<Message Importance="High" Text="See '$(RepoConsoleLogFile)' for more information." Condition="Exists('$(RepoConsoleLogFile)') and '$(MinimalConsoleLogOutput)' == 'true'" />
2021-06-24 16:36:04 -05:00
</Target>
2024-01-11 20:10:28 +01:00
<Target Name="Package" AfterTargets="Build" />
2021-06-24 16:36:04 -05:00
<Target Name="GatherBuiltPackages">
<ItemGroup>
<!-- Filter out packages for WriteVersions -->
<_BuiltPackages Condition="'$(PackagesOutput)' != ''" Include="$(PackagesOutput)/*.nupkg" Exclude="$(PackagesOutput)/*.symbols.nupkg"/>
<_BuiltPackages Condition="'@(PackagesOutputList)' != ''" Include="%(PackagesOutputList.Identity)/*.nupkg" Exclude="%(PackagesOutputList.Identity)/*.symbols.nupkg"/>
</ItemGroup>
</Target>
<Target Name="ExtractIntermediatePackages"
2024-01-11 20:10:28 +01:00
AfterTargets="Package"
Inputs="$(MSBuildProjectFullPath)"
Outputs="$(BaseIntermediateOutputPath)IntermediateExtraction.complete">
2021-06-24 16:36:04 -05:00
<ItemGroup>
<_BuiltIntermediatePackages Condition="'$(PackagesOutput)' != ''" Include="$(PackagesOutput)/Microsoft.SourceBuild.Intermediate.*.nupkg" Exclude="$(PackagesOutput)/*.symbols.nupkg"/>
<_BuiltIntermediatePackages Condition="'@(PackagesOutputList)' != ''" Include="%(PackagesOutputList.Identity)/Microsoft.SourceBuild.Intermediate.*.nupkg" Exclude="%(PackagesOutputList.Identity)/*.symbols.nupkg"/>
</ItemGroup>
2021-07-27 10:27:40 -05:00
2021-06-24 16:36:04 -05:00
<PropertyGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
2024-01-11 20:10:28 +01:00
<_NupkgDestinationPath>$(SourceBuiltPackagesPath)</_NupkgDestinationPath>
<!-- SBRP packages unpack into the Reference packages directory instead of into blob-feed packages -->
<_NupkgDestinationPath Condition="$([System.String]::Copy(%(_BuiltIntermediatePackages.Identity)).Contains('source-build-reference-packages'))">$(ReferencePackagesDir)</_NupkgDestinationPath>
2021-06-24 16:36:04 -05:00
</PropertyGroup>
2024-01-03 15:39:28 +01:00
<Unzip SourceFiles="@(_BuiltIntermediatePackages)"
DestinationFolder="$(SourceBuiltPackagesPath)extractArtifacts/%(_BuiltIntermediatePackages.FileName)/"
SkipUnchangedFiles="true"
Condition="'@(_BuiltIntermediatePackages)' != ''" />
2021-06-24 16:36:04 -05:00
2021-07-09 17:43:30 -05:00
<ItemGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
2021-08-23 17:05:58 -05:00
<SourceBuiltNupkgFiles Include="$(SourceBuiltPackagesPath)extractArtifacts/**/artifacts/*.nupkg" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
2023-01-25 18:59:16 +00:00
<ItemGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
<NonShippingPackageLists Include="$(SourceBuiltPackagesPath)extractArtifacts/**/$(NonShippingPackagesListPrefix)*" />
</ItemGroup>
<!-- Copy lists of NonShipping packages to prebuilt-report dir -->
2024-01-11 20:10:28 +01:00
<Copy SourceFiles="@(NonShippingPackageLists)" DestinationFolder="$(PackageListsDir)" />
2023-01-25 18:59:16 +00:00
2023-03-28 09:40:55 -05:00
<!-- Building SBRP: At this point the References directory contains the previously-source-built SBRPs,
clear it before moving the current SBRPs. This ensures n-1 SBRPs aren't required to build the product repos. -->
<RemoveDir
Condition="'$(_NupkgDestinationPath)' == '$(ReferencePackagesDir)'"
Directories="$(ReferencePackagesDir)" />
2021-08-24 15:01:06 -05:00
<Move
2021-06-24 16:36:04 -05:00
Condition="'@(SourceBuiltNupkgFiles)' != ''"
SourceFiles="@(SourceBuiltNupkgFiles)"
2021-08-23 17:05:58 -05:00
DestinationFiles="@(SourceBuiltNupkgFiles -> '$(_NupkgDestinationPath)%(Filename)%(Extension)')" />
<ItemGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
<SourceBuiltAssetFiles Include="$(SourceBuiltPackagesPath)extractArtifacts/**/artifacts/*.*" />
<SourceBuiltAssetFiles Remove="$(SourceBuiltPackagesPath)extractArtifacts/**/artifacts/*.nupkg" />
</ItemGroup>
2021-08-24 15:01:06 -05:00
<Move
2021-08-23 17:05:58 -05:00
Condition="'@(SourceBuiltAssetFiles)' != ''"
SourceFiles="@(SourceBuiltAssetFiles)"
DestinationFiles="@(SourceBuiltAssetFiles -> '$(SourceBuiltAssetsDir)%(Filename)%(Extension)')" />
2021-06-24 16:36:04 -05:00
<RemoveDir
Condition="Exists('$(SourceBuiltPackagesPath)extractArtifacts/')"
Directories="$(SourceBuiltPackagesPath)extractArtifacts/" />
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)IntermediateExtraction.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
2021-06-24 16:36:04 -05:00
</Target>
2021-07-27 10:27:40 -05:00
<!-- Copy restored packages from inner build to ensure they're included in the
2021-06-30 21:17:54 -05:00
main build prebuilt check -->
<Target Name="CopyInnerBuildRestoredPackages"
AfterTargets="Package">
<ItemGroup>
2023-12-15 12:47:35 +01:00
<_InnerPackageCacheFiles Include="$(ProjectDirectory)artifacts/sb/package-cache/**/*" />
2021-06-30 21:17:54 -05:00
</ItemGroup>
<Copy SourceFiles="@(_InnerPackageCacheFiles)"
2024-01-11 23:13:20 +01:00
DestinationFiles="$(NuGetPackageRoot)%(RecursiveDir)%(Filename)%(Extension)"
2021-06-30 21:17:54 -05:00
Condition=" '@(_InnerPackageCacheFiles)' != '' " />
</Target>
2021-06-24 16:36:04 -05:00
<Target Name="CopyPackage"
AfterTargets="Package"
2023-02-16 12:40:45 -06:00
Condition="'$(PackagesOutput)' != '' OR '@(PackagesOutputList)' != ''"
2024-01-11 20:10:28 +01:00
DependsOnTargets="GatherBuiltPackages">
2021-06-24 16:36:04 -05:00
<Copy SourceFiles="@(_BuiltPackages)"
DestinationFolder="$(SourceBuiltPackagesPath)"
2024-01-11 20:10:28 +01:00
Condition="'@(_BuiltPackages)'!=''"
SkipUnchangedFiles="true" />
2021-06-24 16:36:04 -05:00
</Target>
<Target Name="RemoveBuiltPackagesFromCache"
AfterTargets="Package"
Condition="'@(_BuiltPackages)'!=''"
DependsOnTargets="GatherBuiltPackages"
Inputs="$(MSBuildProjectFullPath)"
2024-01-11 20:10:28 +01:00
Outputs="$(BaseIntermediateOutputPath)RemoveBuiltPackagesFromCache.complete">
2021-06-24 16:36:04 -05:00
<ItemGroup>
2024-01-11 20:10:28 +01:00
<!-- Excluding Arcade here will keep it in the cache, because that's where we're running from.
Subsequent projects will get Arcade from eng/source-built-sdks. -->
<PackagePaths Include="@(_BuiltPackages)" Exclude="$(PackagesOutput)/Microsoft.DotNet.Arcade.Sdk.*.nupkg" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
<ReadNuGetPackageInfos PackagePaths="@(PackagePaths)">
<Output TaskParameter="PackageInfoItems" ItemName="_BuiltPackageInfos" />
</ReadNuGetPackageInfos>
<!-- Copy built nupkgs from nuget packages cache directory to the previouslyRestored directory
and then delete all expanded files and the nupkg from the package cache so the next time
the package is used, it will reload the source-built version -->
<ItemGroup>
2024-01-11 23:13:20 +01:00
<_FilesToCopy Include="$(NuGetPackageRoot)$([System.String]::copy('%(_BuiltPackageInfos.PackageId)').ToLowerInvariant())/%(_BuiltPackageInfos.PackageVersion)/**/*.nupkg" />
<_FilesToDelete Include="$(NuGetPackageRoot)$([System.String]::copy('%(_BuiltPackageInfos.PackageId)').ToLowerInvariant())/%(_BuiltPackageInfos.PackageVersion)/**/*.*" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
2024-01-11 20:10:28 +01:00
2021-06-24 16:36:04 -05:00
<Copy SourceFiles="@(_FilesToCopy)" DestinationFolder="$(PreviouslyRestoredPackagesPath)$(RepositoryName)/" />
<Delete Files="@(_FilesToDelete)" />
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)RemoveBuiltPackagesFromCache.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
2021-06-24 16:36:04 -05:00
</Target>
2024-01-11 20:10:28 +01:00
<Target Name="CleanupRepo"
2021-08-06 09:12:04 -05:00
AfterTargets="RemoveBuiltPackagesFromCache"
2024-01-11 20:10:28 +01:00
Condition="'$(CleanWhileBuilding)' == 'true' and Exists('$(ProjectDirectory)artifacts')">
2021-08-06 09:12:04 -05:00
<PropertyGroup>
2024-01-11 20:10:28 +01:00
<BuildLogsDir>$([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'buildLogs'))</BuildLogsDir>
<BuildObjDir>$([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'buildObj'))</BuildObjDir>
2021-08-06 09:12:04 -05:00
</PropertyGroup>
2024-01-11 20:10:28 +01:00
2021-08-06 09:12:04 -05:00
<ItemGroup>
<LogFilesToCopy Include="$(ProjectDirectory)artifacts/**/*.log" />
<LogFilesToCopy Include="$(ProjectDirectory)artifacts/**/*.binlog" />
<ObjFilesToCopy Include="$(ProjectDirectory)artifacts/**/project.assets.json" />
</ItemGroup>
2024-01-11 20:10:28 +01:00
<!-- Make a copy of the build logs & project.assets.json files -->
<Copy SourceFiles="@(LogFilesToCopy)"
DestinationFolder="$(BuildLogsDir)%(RecursiveDir)"
SkipUnchangedFiles="true"
Condition="'@(LogFilesToCopy)' != ''" />
<Copy SourceFiles="@(ObjFilesToCopy)"
DestinationFolder="$(BuildObjDir)%(RecursiveDir)"
SkipUnchangedFiles="true"
Condition="'@(ObjFilesToCopy)' != ''" />
2021-08-06 09:12:04 -05:00
<ItemGroup>
2024-01-11 20:10:28 +01:00
<DirsToDelete Include="$([System.IO.Directory]::GetDirectories('$(ProjectDirectory)artifacts'))" />
<DirsToDeleteWithTrailingSeparator Include="$([MSBuild]::EnsureTrailingSlash('%(DirsToDelete.Identity)'))" />
<DirsToDeleteWithTrailingSeparator Remove="$(BuildLogsDir)" />
<DirsToDeleteWithTrailingSeparator Remove="$(BuildObjDir)" />
2021-08-06 09:12:04 -05:00
</ItemGroup>
2024-01-11 20:10:28 +01:00
<Message Text="DirSize After Building $(RepositoryName)" Importance="High" Condition="'$(BuildOS)' != 'windows' and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
<Exec Command="df -h $(RepoRoot)" Condition="'$(BuildOS)' != 'windows' and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
<!-- Cleanup everything else -->
<RemoveDir Directories="@(DirsToDeleteWithTrailingSeparator)" />
<Message Text="DirSize After CleanupRepo $(RepositoryName)" Importance="High" Condition="'$(BuildOS)' != 'windows'and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
<Exec Command="df -h $(RepoRoot)" Condition="'$(BuildOS)' != 'windows'and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
2021-08-06 09:12:04 -05:00
</Target>
2021-06-24 16:36:04 -05:00
<Target Name="ExtractToolPackage"
DependsOnTargets="GatherBuiltPackages"
AfterTargets="Build"
Condition="'@(BuiltSdkPackageOverride)' != ''"
Inputs="$(MSBuildProjectFullPath)"
2024-01-11 20:10:28 +01:00
Outputs="$(BaseIntermediateOutputPath)ExtractToolPackage.complete">
2021-06-24 16:36:04 -05:00
<ItemGroup>
<_ToolPackage
Condition="'%(BuiltSdkPackageOverride.Version)' == ''"
Include="$(SourceBuiltPackagesPath)%(BuiltSdkPackageOverride.Identity)*.nupkg"
Exclude="$(SourceBuiltPackagesPath)%(BuiltSdkPackageOverride.Identity)*.symbols.nupkg"
Id="%(BuiltSdkPackageOverride.Identity)" />
<_ToolPackage
Condition="'%(BuiltSdkPackageOverride.Version)' != ''"
Include="$(SourceBuiltPackagesPath)%(BuiltSdkPackageOverride.Identity).%(BuiltSdkPackageOverride.Version).nupkg"
Exclude="$(SourceBuiltPackagesPath)%(BuiltSdkPackageOverride.Identity).%(BuiltSdkPackageOverride.Version).symbols.nupkg"
Id="%(BuiltSdkPackageOverride.Identity)" />
</ItemGroup>
2024-01-03 15:39:28 +01:00
<Unzip SourceFiles="%(_ToolPackage.Identity)"
DestinationFolder="$(SourceBuiltSdksDir)%(_ToolPackage.Id)\"
SkipUnchangedFiles="true" />
2021-06-24 16:36:04 -05:00
<ItemGroup>
2022-12-14 10:59:05 -06:00
<ExtractedToolFiles Include="$(SourceBuiltSdksDir)%(_ToolPackage.Id)/**/*netcore*/*.dll" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
2022-12-14 10:59:05 -06:00
<Copy SourceFiles="@(ExtractedToolFiles)" DestinationFolder="$(SourceBuiltSdksDir)/" />
2021-06-24 16:36:04 -05:00
2024-01-03 15:39:28 +01:00
<!-- When unpacking, this executable file has the wrong permissions on
non-windows systems: https://github.com/NuGet/Home/issues/13121. -->
2021-06-24 16:36:04 -05:00
<Exec Command="chmod 755 git-clone-to-dir.sh"
2024-01-11 20:10:28 +01:00
Condition=" '%(_ToolPackage.Id)' == 'Microsoft.DotNet.Arcade.Sdk' and !$([MSBuild]::IsOSPlatform(Windows))"
2022-12-14 10:59:05 -06:00
WorkingDirectory="$(SourceBuiltSdksDir)%(_ToolPackage.Id)/tools/SourceBuild/" />
2021-07-27 10:27:40 -05:00
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)ExtractToolPackage.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
2021-06-24 16:36:04 -05:00
</Target>
<Target Name="EnsurePackagesCreated"
AfterTargets="CopyPackage"
2024-01-11 20:10:28 +01:00
Condition="'$(SkipEnsurePackagesCreated)' != 'true' and '$(IsUtilityProject)' != 'true'"
2021-06-24 16:36:04 -05:00
Inputs="$(MSBuildProjectFullPath)"
2024-01-11 20:10:28 +01:00
Outputs="$(BaseIntermediateOutputPath)EnsurePackagesCreated.complete">
2021-06-24 16:36:04 -05:00
<ItemGroup>
<JustSourceBuiltPackages
Include="$(SourceBuiltPackagesPath)*.nupkg"
Exclude="
$(SourceBuiltPackagesPath)*.symbols.nupkg;
@(PreviouslySourceBuiltPackages)" />
</ItemGroup>
<ItemGroup>
<_PackagesNotCreatedReason Include="^ There may have been a silent failure in the submodule build. To confirm, check the build log file for undetected errors that may have prevented package creation: $(RepoConsoleLogFile)" />
<_PackagesNotCreatedReason Include="^ This error might be a false positive if $(RepositoryName) intentionally builds no nuget packages. If so, set the SkipEnsurePackagesCreated property to true in $(MSBuildProjectFullPath)" />
2023-01-17 09:45:40 -08:00
<_PackagesNotCreatedReason Include="^ The 'bin' directory might be dirty from a previous build and the package files already existed. If so, perform a clean build, or check which packages were already in 'bin' by opening $(CurrentSourceBuiltPackageVersionPropsPath)" />
2021-06-24 16:36:04 -05:00
<_PackagesNotCreatedReason Include="^ The packages may have been written to an unexpected directory. For example, some repos used bin/ and changed to artifacts/ to match Arcade. Check PackagesOutput in $(MSBuildProjectFullPath) (currently '$(PackagesOutput)')" />
</ItemGroup>
<Error Condition="'@(JustSourceBuiltPackages)' == ''"
Text="$(RepositoryName) produced no new source-built package identities. Known possible causes:%0A@(_PackagesNotCreatedReason, '%0A')" />
<ReadNuGetPackageInfos PackagePaths="@(JustSourceBuiltPackages)">
<Output TaskParameter="PackageInfoItems" ItemName="_JustSourceBuiltPackageInfos" />
</ReadNuGetPackageInfos>
<Message Importance="High" Text="New NuGet package(s) after building $(RepositoryName):" />
<Message Importance="High" Text=" -> %(_JustSourceBuiltPackageInfos.PackageId) %(_JustSourceBuiltPackageInfos.PackageVersion)" />
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)EnsurePackagesCreated.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
2021-06-24 16:36:04 -05:00
</Target>
<Target Name="SetSourceBuiltSdkOverrides"
BeforeTargets="Build"
2024-01-11 20:10:28 +01:00
Condition="'@(SourceBuiltSdkOverride)' != ''">
2021-06-24 16:36:04 -05:00
<ItemGroup>
2024-01-11 20:10:28 +01:00
<EnvironmentVariables Include="SOURCE_BUILT_SDK_ID_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Identity)" />
<EnvironmentVariables Include="SOURCE_BUILT_SDK_VERSION_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Version)" />
<EnvironmentVariables Condition="'%(SourceBuiltSdkOverride.Location)' != ''" Include="SOURCE_BUILT_SDK_DIR_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Location)/" />
<EnvironmentVariables Condition="'%(SourceBuiltSdkOverride.Location)' == ''" Include="SOURCE_BUILT_SDK_DIR_%(SourceBuiltSdkOverride.Group)=$(SourceBuiltSdksDir)%(SourceBuiltSdkOverride.Identity)/" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
</Target>
<Target Name="WritePrebuiltUsageData"
DependsOnTargets="GetAllProjectDirectories"
Inputs="$(MSBuildProjectFullPath)"
2024-01-11 20:10:28 +01:00
Outputs="$(BaseIntermediateOutputPath)WritePrebuiltUsageData.complete">
2021-06-24 16:36:04 -05:00
<!-- Save the PVP snapshot of each build step to be evaluated while building the report. -->
<ItemGroup>
2024-01-16 15:29:50 +01:00
<PackageVersionPropsSnapshotFiles Include="$(SharedIntermediateOutputPath)PackageVersions.*.Snapshot.props" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
<Copy SourceFiles="@(PackageVersionPropsSnapshotFiles)" DestinationFolder="$(PackageReportDir)snapshots/" />
<ItemGroup>
2024-01-11 23:13:20 +01:00
<AllRestoredPackageFiles Include="$(NuGetPackageRoot)**/*.nupkg" />
2021-06-24 16:36:04 -05:00
2023-01-10 08:50:31 -06:00
<!-- Only contains packages when building. -->
2021-06-24 16:36:04 -05:00
<TarballPrebuiltPackageFiles Include="$(PrebuiltPackagesPath)*.nupkg" />
<SourceBuiltPackageFiles Include="$(SourceBuiltBlobFeedDir)**/*.nupkg" />
<SourceBuiltPackageFiles Include="$(PrebuiltSourceBuiltPackagesPath)*.nupkg" />
2021-07-09 16:42:42 -05:00
<ReferencePackageFiles Include="$(ReferencePackagesDir)**/*.nupkg" />
2021-06-24 16:36:04 -05:00
<!-- Check all RIDs from all restored Microsoft.NETCore.Platforms packages. -->
2024-01-11 23:13:20 +01:00
<PlatformsRuntimeJsonFiles Include="$(NuGetPackageRoot)microsoft.netcore.platforms/*/PortableRuntimeIdentifierGraph.json" />
2021-06-24 16:36:04 -05:00
<!-- Add some other potential top-level project directories for a more specific report. -->
2024-01-11 20:10:28 +01:00
<ProjectDirectories Include="$(SourceBuiltSdksDir);$(TasksDir);$(ArtifactsObjDir)" />
2021-06-24 16:36:04 -05:00
<!-- Finally, scan entire source-build, in case project.assets.json ends up in an unexpected place. -->
2024-01-11 20:10:28 +01:00
<ProjectDirectories Include="$(RepoRoot)" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
<ItemGroup>
<!-- This file is a resource tracked by Git, not generated by restore. Ignore false positive. -->
2024-01-11 20:10:28 +01:00
<IgnoredProjectAssetsJsonFiles Include="$(SrcDir)*nuget-client*/**/test/NuGet.Core.Tests/NuGet.Build.Tasks.Pack.Test/compiler/resources/project.assets.json"/>
2021-06-24 16:36:04 -05:00
</ItemGroup>
<WritePackageUsageData
RestoredPackageFiles="@(AllRestoredPackageFiles)"
TarballPrebuiltPackageFiles="@(TarballPrebuiltPackageFiles)"
SourceBuiltPackageFiles="@(SourceBuiltPackageFiles)"
ReferencePackageFiles="@(ReferencePackageFiles)"
PlatformsRuntimeJsonFiles="@(PlatformsRuntimeJsonFiles)"
TargetRid="$(TargetRid)"
ProjectDirectories="@(ProjectDirectories)"
2024-01-11 20:10:28 +01:00
RootDir="$(RepoRoot)"
2021-06-24 16:36:04 -05:00
IgnoredProjectAssetsJsonFiles="@(IgnoredProjectAssetsJsonFiles)"
DataFile="$(PackageReportDataFile)"
ProjectAssetsJsonArchiveFile="$(ProjectAssetsJsonArchiveFile)" />
2023-08-17 13:59:33 -05:00
<!-- Copy packages detected as prebuilts to the artifacts prebuilt folder -->
2021-07-27 10:27:40 -05:00
<ItemGroup>
2023-08-17 13:59:33 -05:00
<AllowedPackageFiles Include="@(TarballPrebuiltPackageFile)" />
<AllowedPackageFiles Include="@(SourceBuiltPackageFiles)" />
<AllowedPackageFiles Include="@(ReferencePackageFiles)" />
<AllowedPackageFiles>
2024-01-11 20:10:28 +01:00
<LCFilename>$([System.String]::Copy(%(Filename)).ToLowerInvariant())</LCFilename>
2023-08-17 13:59:33 -05:00
</AllowedPackageFiles>
2021-07-27 10:27:40 -05:00
2023-08-17 13:59:33 -05:00
<PrebuiltPackageFiles Include="@(AllRestoredPackageFiles)" >
2024-01-11 20:10:28 +01:00
<LCFilename>$([System.String]::Copy(%(Filename)).ToLowerInvariant())</LCFilename>
2023-08-17 13:59:33 -05:00
</PrebuiltPackageFiles>
<PrebuiltPackageFiles Remove="@(AllowedPackageFiles)" MatchOnMetadata="LCFilename" />
2021-07-27 10:27:40 -05:00
</ItemGroup>
2023-08-17 13:59:33 -05:00
<Copy
SourceFiles="@(PrebuiltPackageFiles)"
DestinationFolder="$(ResultingPrebuiltPackagesDir)" />
2021-07-27 10:27:40 -05:00
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)WritePrebuiltUsageData.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
2021-07-08 20:09:54 -05:00
</Target>
2021-06-24 16:36:04 -05:00
<Target Name="GetAllProjectDirectories">
<ItemGroup>
2022-12-14 10:59:05 -06:00
<AllRepoProjects Include="$(RepoProjectsDir)*.proj" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
<Message Importance="High" Text="Finding project directories..." />
<MSBuild Projects="@(AllRepoProjects)"
Targets="GetProjectDirectory">
<Output TaskParameter="TargetOutputs" ItemName="ProjectDirectories" />
</MSBuild>
</Target>
<Target Name="ReportPrebuiltUsage"
Inputs="$(MSBuildProjectFullPath)"
2024-01-11 20:10:28 +01:00
Outputs="$(BaseIntermediateOutputPath)ReportPrebuiltUsage.complete">
2021-06-24 16:36:04 -05:00
<PropertyGroup>
<FailOnPrebuiltBaselineError Condition="'$(FailOnPrebuiltBaselineError)' == ''">false</FailOnPrebuiltBaselineError>
</PropertyGroup>
<ItemGroup>
2023-02-07 08:03:21 -08:00
<PackageVersionPropsSavedSnapshotFiles Include="$(PackageReportDir)snapshots/PackageVersions.*.Snapshot.props" />
2021-06-24 16:36:04 -05:00
</ItemGroup>
<WriteUsageReports DataFile="$(PackageReportDataFile)"
PackageVersionPropsSnapshots="@(PackageVersionPropsSavedSnapshotFiles)"
ProdConBuildManifestFile="$(ProdConManifestFile)"
PoisonedReportFile="$(PoisonedReportFile)"
OutputDirectory="$(PackageReportDir)" />
<PropertyGroup Condition="'$(ContinueOnPrebuiltBaselineError)' == ''">
<ContinueOnPrebuiltBaselineError>false</ContinueOnPrebuiltBaselineError>
<ContinueOnPrebuiltBaselineError Condition="'$(FailOnPrebuiltBaselineError)' != 'true'">true</ContinueOnPrebuiltBaselineError>
</PropertyGroup>
<ValidateUsageAgainstBaseline
DataFile="$(PackageReportDataFile)"
BaselineDataFile="$(BaselineDataFile)"
OutputBaselineFile="$(PackageReportDir)generated-new-baseline.xml"
OutputReportFile="$(PackageReportDir)baseline-comparison.xml"
AllowTestProjectUsage="$(AllowTestProjectUsage)"
ContinueOnError="$(ContinueOnPrebuiltBaselineError)" />
2024-01-11 20:10:28 +01:00
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<Touch Files="$(BaseIntermediateOutputPath)ReportPrebuiltUsage.complete" AlwaysCreate="true">
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
</Touch>
2021-06-24 16:36:04 -05:00
</Target>
<Target Name="GetProjectDirectory" Outputs="$(ProjectDirectory)" />
<Target Name="GetRepositoryReferences" Outputs="@(RepositoryReference)" />
</Project>