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> <_WorkRoot>$(RepositoryRoot).w\</_WorkRoot>
<_WorkLayoutDir>$(_WorkRoot).l\</_WorkLayoutDir> <_WorkLayoutDir>$(_WorkRoot).l\</_WorkLayoutDir>
<_WorkOutputDir>$(_WorkRoot).o\</_WorkOutputDir> <_WorkOutputDir>$(_WorkRoot).o\</_WorkOutputDir>
<_SrcDir>$(RepositoryRoot)src\</_SrcDir> <_MetapackageSrcRoot>$(RepositoryRoot)src\</_MetapackageSrcRoot>
<_AllMetapackageDir>$(_SrcDir)Microsoft.AspNetCore.All\</_AllMetapackageDir>
<_AppMetapackageDir>$(_SrcDir)Microsoft.AspNetCore.App\</_AppMetapackageDir>
<_TemplatesDir>$(MSBuildThisFileDirectory)tools\templates\</_TemplatesDir> <_TemplatesDir>$(MSBuildThisFileDirectory)tools\templates\</_TemplatesDir>
<_DockerDir>$(MSBuildThisFileDirectory)tools\docker\</_DockerDir> <_DockerDir>$(MSBuildThisFileDirectory)tools\docker\</_DockerDir>
<_PackagingDir>$(MSBuildThisFileDirectory)tools\packaging\</_PackagingDir> <_PackagingDir>$(MSBuildThisFileDirectory)tools\packaging\</_PackagingDir>

View File

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

View File

@ -5,6 +5,7 @@
<AppMetapackage>false</AppMetapackage> <AppMetapackage>false</AppMetapackage>
<AllMetapackage>false</AllMetapackage> <AllMetapackage>false</AllMetapackage>
<HostingStartup>false</HostingStartup> <HostingStartup>false</HostingStartup>
<Analyzer>false</Analyzer>
<LZMA>false</LZMA> <LZMA>false</LZMA>
<LZMATools>false</LZMATools> <LZMATools>false</LZMATools>
</PackageArtifact> </PackageArtifact>
@ -19,6 +20,7 @@
<PackageArtifact Include="Microsoft.AspNetCore" Category="ship" AppMetapackage="true"/> <PackageArtifact Include="Microsoft.AspNetCore" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.App" Category="ship" /> <PackageArtifact Include="Microsoft.AspNetCore.App" Category="ship" />
<PackageArtifact Include="Microsoft.AspNetCore.All" Category="ship" LZMA="true" /> <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.Antiforgery" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Category="ship" AllMetapackage="true" HostingStartup="true" /> <PackageArtifact Include="Microsoft.AspNetCore.ApplicationInsights.HostingStartup" Category="ship" AllMetapackage="true" HostingStartup="true" />
<PackageArtifact Include="Microsoft.AspNetCore.AspNetCoreModule" Category="noship" /> <PackageArtifact Include="Microsoft.AspNetCore.AspNetCoreModule" Category="noship" />
@ -91,7 +93,7 @@
<PackageArtifact Include="Microsoft.AspNetCore.MiddlewareAnalysis" Category="ship" AppMetapackage="true"/> <PackageArtifact Include="Microsoft.AspNetCore.MiddlewareAnalysis" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc" 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.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.ApiExplorer" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Core" Category="ship" AppMetapackage="true"/> <PackageArtifact Include="Microsoft.AspNetCore.Mvc.Core" Category="ship" AppMetapackage="true"/>
<PackageArtifact Include="Microsoft.AspNetCore.Mvc.Cors" 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.Localization.Abstractions" Category="ship" AppMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging" 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.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.AzureAppServices" Category="ship" AppMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Configuration" Category="ship" AppMetapackage="true" /> <PackageArtifact Include="Microsoft.Extensions.Logging.Configuration" Category="ship" AppMetapackage="true" />
<PackageArtifact Include="Microsoft.Extensions.Logging.Console" 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> <CleanDependsOn>$(CleanDependsOn);CleanArtifacts;CleanUniverseArtifacts</CleanDependsOn>
<RestoreDependsOn>$(RestoreDependsOn);InstallDotNet;RestoreExternalDependencies</RestoreDependsOn> <RestoreDependsOn>$(RestoreDependsOn);InstallDotNet;RestoreExternalDependencies</RestoreDependsOn>
<CompileDependsOn>$(CompileDependsOn);BuildRepositories</CompileDependsOn> <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> <TestDependsOn>$(TestDependsOn);_TestRepositories</TestDependsOn>
<VerifyDependsOn Condition="'$(TestOnly)' != 'true'">$(VerifyDependsOn);VerifyCoherentVersions</VerifyDependsOn> <VerifyDependsOn Condition="'$(TestOnly)' != 'true'">$(VerifyDependsOn);VerifyCoherentVersions</VerifyDependsOn>
<GetArtifactInfoDependsOn>$(GetArtifactInfoDependsOn);ResolveRepoInfo</GetArtifactInfoDependsOn> <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>