Add support for building Microsoft.AspNetCore.Analyzers metapackage

This commit is contained in:
Pranav K 2018-01-22 10:03:30 -08:00
parent d3a56f55e1
commit 13cf9f76bd
5 changed files with 66 additions and 20 deletions

View File

@ -4,9 +4,7 @@
<_WorkRoot>$(RepositoryRoot).w\</_WorkRoot>
<_WorkLayoutDir>$(_WorkRoot).l\</_WorkLayoutDir>
<_WorkOutputDir>$(_WorkRoot).o\</_WorkOutputDir>
<_SrcDir>$(RepositoryRoot)src\</_SrcDir>
<_AllMetapackageDir>$(_SrcDir)Microsoft.AspNetCore.All\</_AllMetapackageDir>
<_AppMetapackageDir>$(_SrcDir)Microsoft.AspNetCore.App\</_AppMetapackageDir>
<_MetapackageSrcRoot>$(RepositoryRoot)src\</_MetapackageSrcRoot>
<_TemplatesDir>$(MSBuildThisFileDirectory)tools\templates\</_TemplatesDir>
<_DockerDir>$(MSBuildThisFileDirectory)tools\docker\</_DockerDir>
<_PackagingDir>$(MSBuildThisFileDirectory)tools\packaging\</_PackagingDir>

View File

@ -8,12 +8,17 @@
<Target Name="_BuildMetapackage" DependsOnTargets="ResolveRepoInfo">
<PropertyGroup>
<MetapackageSource>$(_MetapackageSrcRoot)$(MetapackageName)\</MetapackageSource>
<MetapackageWorkDirectory>$(_WorkRoot)$(MetapackageName)\</MetapackageWorkDirectory>
<CommonProps>Configuration=$(Configuration);DotNetRestoreSourcePropsPath=$(GeneratedRestoreSourcesPropsPath);AspNetUniverseBuildOffline=true</CommonProps>
<CommonProps>$(CommonProps);RuntimeFrameworkVersion=$(MicrosoftNETCoreApp21PackageVersion)</CommonProps>
<CommonProps>$(CommonProps);AppMetapackageVersion=$(PackageVersion)</CommonProps>
</PropertyGroup>
<Error
Message="Source directory $(MetapackageSource) for $(MetapackageName) does not exist."
Condition="!Exists('$(MetapackageSource)')" />
<ItemGroup>
<MetapackageFiles Include="$(MetapackageSource)**\*" />
</ItemGroup>
@ -22,8 +27,8 @@
<RemoveDir Directories="$(MetapackageWorkDirectory)" />
<!-- Move to working dir -->
<Copy SourceFiles="@(MetapackageFiles)" DestinationFolder="$(MetapackageWorkDirectory)\%(RecursiveDir)" />
<Copy SourceFiles="$(_SrcDir)Directory.Build.props" DestinationFolder="$(_WorkRoot)" />
<Copy SourceFiles="@(MetapackageFiles)" DestinationFolder="$(MetapackageWorkDirectory)%(RecursiveDir)" />
<Copy SourceFiles="$(_MetapackageSrcRoot)Directory.Build.props" DestinationFolder="$(_WorkRoot)" />
<!-- Add references to project -->
<RepoTasks.AddMetapackageReferences
@ -39,18 +44,34 @@
<MSBuild Projects="$(MetapackageWorkDirectory)$(MetapackageName).csproj" Targets="Pack" Properties="$(CommonProps);PackageOutputPath=$(BuildDir)" />
</Target>
<Target Name="BuildMetapackage">
<PropertyGroup>
<AppMetapackageProps>MetapackageName=Microsoft.AspNetCore.App</AppMetapackageProps>
<AppMetapackageProps>$(AppMetapackageProps);MetapackageSource=$(_AppMetapackageDir)</AppMetapackageProps>
<AppMetapackageProps>$(AppMetapackageProps);MetapackageReferenceType=AppMetapackage</AppMetapackageProps>
<AllMetapackageProps>MetapackageName=Microsoft.AspNetCore.All</AllMetapackageProps>
<AllMetapackageProps>$(AllMetapackageProps);MetapackageSource=$(_AllMetapackageDir)</AllMetapackageProps>
<AllMetapackageProps>$(AllMetapackageProps);MetapackageReferenceType=AllMetapackage</AllMetapackageProps>
</PropertyGroup>
<Target Name="BuildMetapackages">
<ItemGroup>
<_MetapackageBuilderProject Include="$(MSBuildProjectFullPath)">
<AdditionalProperties>
MetapackageName=Microsoft.AspNetCore.App;
MetapackageReferenceType=AppMetapackage
</AdditionalProperties>
</_MetapackageBuilderProject>
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_BuildMetapackage" Properties="$(AppMetapackageProps)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_BuildMetapackage" Properties="$(AllMetapackageProps)" />
<_MetapackageBuilderProject Include="$(MSBuildProjectFullPath)">
<AdditionalProperties>
MetapackageName=Microsoft.AspNetCore.All;
MetapackageReferenceType=AllMetapackage
</AdditionalProperties>
</_MetapackageBuilderProject>
<_MetapackageBuilderProject Include="$(MSBuildProjectFullPath)">
<AdditionalProperties>
MetapackageName=Microsoft.AspNetCore.Analyzers;
MetapackageReferenceType=Analyzer
</AdditionalProperties>
</_MetapackageBuilderProject>
</ItemGroup>
<MSBuild
Projects="@(_MetapackageBuilderProject)"
Targets="_BuildMetapackage"
BuildInParallel="$(BuildInParallel)" />
</Target>
<Target Name="DefineSharedFxPrerequisites">
@ -128,7 +149,7 @@
<!-- Clear working directory -->
<RemoveDir Directories="$(_WorkRoot)" />
<Copy SourceFiles="$(_SrcDir)Directory.Build.props" DestinationFolder="$(_WorkRoot)" />
<Copy SourceFiles="$(_MetapackageSrcRoot)Directory.Build.props" DestinationFolder="$(_WorkRoot)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_PrepareForSharedFx" Properties="$(AppSharedFxProps)" />
<MSBuild Projects="$(MSBuildProjectFullPath)" Targets="_PrepareForSharedFx" Properties="$(AllSharedFxProps)" />

View File

@ -5,6 +5,7 @@
<AppMetapackage>false</AppMetapackage>
<AllMetapackage>false</AllMetapackage>
<HostingStartup>false</HostingStartup>
<Analyzer>false</Analyzer>
<LZMA>false</LZMA>
<LZMATools>false</LZMATools>
</PackageArtifact>
@ -19,6 +20,7 @@
<PackageArtifact Include="Microsoft.AspNetCore" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.App" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.All" Category="ship" LZMA="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Analyzers" Category="shipoob" />
<PackageArtifact Include="Microsoft.AspNetCore.Antiforgery" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Category="ship" AllMetapackage="true" HostingStartup="true" />
<PackageArtifact Include="Microsoft.AspNetCore.AspNetCoreModule" Category="noship" />
@ -91,7 +93,7 @@
<PackageArtifact Include="Microsoft.AspNetCore.MiddlewareAnalysis" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Abstractions" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Analyzers" Category="shipoob" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Analyzers" Category="shipoob" Analyzer="true" />
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Core" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Cors" Category="ship" AppMetapackage="true"/>
@ -226,7 +228,7 @@
<PackageArtifact Include="Microsoft.Extensions.Localization.Abstractions" Category="ship" AppMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging" Category="ship" AppMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Abstractions" Category="ship" AppMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Analyzers" Category="noship" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Analyzers" Category="noship" Analyzer="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.AzureAppServices" Category="ship" AppMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Configuration" Category="ship" AppMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Console" Category="ship" AppMetapackage="true" />

View File

@ -19,7 +19,7 @@
<CleanDependsOn>$(CleanDependsOn);CleanArtifacts;CleanUniverseArtifacts</CleanDependsOn>
<RestoreDependsOn>$(RestoreDependsOn);InstallDotNet;RestoreExternalDependencies</RestoreDependsOn>
<CompileDependsOn>$(CompileDependsOn);BuildRepositories</CompileDependsOn>
<PackageDependsOn Condition="'$(TestOnly)' != 'true'">$(PackageDependsOn);BuildMetapackage;BuildTemplates;SplitPackages</PackageDependsOn>
<PackageDependsOn Condition="'$(TestOnly)' != 'true'">$(PackageDependsOn);BuildMetapackages;BuildTemplates;SplitPackages</PackageDependsOn>
<TestDependsOn>$(TestDependsOn);_TestRepositories</TestDependsOn>
<VerifyDependsOn Condition="'$(TestOnly)' != 'true'">$(VerifyDependsOn);VerifyCoherentVersions</VerifyDependsOn>
<GetArtifactInfoDependsOn>$(GetArtifactInfoDependsOn);ResolveRepoInfo</GetArtifactInfoDependsOn>

View File

@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''" />
<PropertyGroup>
<RestoreSources>$(DotNetRestoreSources)</RestoreSources>
<RestoreSources Condition="'$(DotNetBuildOffline)' != 'true' AND '$(AspNetUniverseBuildOffline)' != 'true' ">
$(RestoreSources);
https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json;
</RestoreSources>
<RestoreSources Condition="'$(DotNetBuildOffline)' != 'true'">
$(RestoreSources);
https://api.nuget.org/v3/index.json;
</RestoreSources>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageTags>aspnetcore</PackageTags>
<Description>Microsoft.AspNetCore.Analyzers</Description>
<EnableApiCheck>false</EnableApiCheck>
</PropertyGroup>
</Project>