aspnetcore/build/repo.targets

103 lines
4.6 KiB
XML

<Project>
<Import Project="AzureIntegration.targets" />
<Import Project="SharedFx.targets" />
<Import Project="CodeSign.targets" />
<Import Project="Publish.targets" />
<Import Project="..\eng\Workarounds.targets" />
<PropertyGroup>
<!-- Some projects need access to tasks bundled in KoreBuild. -->
<BuildProperties>$(BuildProperties);BuildToolsTaskAssembly=$(_BuildToolsAssembly)</BuildProperties>
<!-- Reset the default korebuild lifecycle. -->
<BuildDependsOn>Prepare</BuildDependsOn>
<!-- Map bootstrapper flags to KoreBuild targets -->
<BuildDependsOn Condition=" '$(_RunRestore)' == 'true' ">$(BuildDependsOn);Restore</BuildDependsOn>
<BuildDependsOn Condition=" '$(_RunBuild)' == 'true' ">$(BuildDependsOn);Compile</BuildDependsOn>
<BuildDependsOn Condition=" '$(_RunPack)' == 'true' ">$(BuildDependsOn);Package</BuildDependsOn>
<BuildDependsOn Condition=" '$(_RunTests)' == 'true' ">$(BuildDependsOn);Test;Verify</BuildDependsOn>
<SkipTests Condition=" '$(_RunTests)' != 'true' ">true</SkipTests>
<DisableCodeSigning Condition=" '$(_RunSign)' != 'true' OR '$(OS)' != 'Windows_NT' ">true</DisableCodeSigning>
<CleanDependsOn>$(CleanDependsOn);CleanArtifacts</CleanDependsOn>
<RestoreDependsOn>$(RestoreDependsOn);InstallDotNet;RestoreProjects</RestoreDependsOn>
<CompileDependsOn />
<CompileDependsOn Condition=" '$(_RunRestore)' == 'true' ">Restore</CompileDependsOn>
<CompileDependsOn>$(CompileDependsOn);BuildProjects</CompileDependsOn>
<PackageDependsOn>$(PackageDependsOn);PackProjects</PackageDependsOn>
<PackageDependsOn Condition=" '$(BuildAllProjects)' == 'true' ">$(PackageDependsOn);BuildSharedFx;RemoveSharedFrameworkOnlyRefsFromNuspec</PackageDependsOn>
<TestDependsOn />
<TestDependsOn Condition=" '$(_RunBuild)' == 'true' ">$(TestDependsOn);Compile</TestDependsOn>
<TestDependsOn>$(TestDependsOn);TestProjects</TestDependsOn>
<!-- Package modification must happen before code signing. -->
<CodeSignDependsOn>$(CodeSignDependsOn);RemoveSharedFrameworkOnlyRefsFromNuspec</CodeSignDependsOn>
</PropertyGroup>
<Target Name="ShowProjectClosure" DependsOnTargets="ResolveProjects">
<MSBuild Targets="_CustomCollectProjectReference"
BuildInParallel="true"
SkipNonexistentTargets="true"
Projects="@(ProjectToBuild)"
Properties="DesignTimeBuild=true"
RebaseOutputs="True">
<Output TaskParameter="TargetOutputs" ItemName="_ReferenceProject" />
</MSBuild>
<RemoveDuplicates Inputs="@(_ReferenceProject->'%(FullPath)')">
<Output TaskParameter="Filtered" ItemName="ReferencedProjects" />
</RemoveDuplicates>
<Message Importance="High" Text="Projects referenced:" />
<Message Importance="High" Text=" - %(ReferencedProjects.Identity)" />
<WriteLinesToFile Lines="@(ReferencedProjects)" File="$(ProjectsReferencedOutFile)" Overwrite="true" Condition="'$(ProjectsReferencedOutFile)' != ''" />
</Target>
<Target Name="GenerateProjectList" DependsOnTargets="ResolveProjects">
<MSBuild Projects="@(ProjectToBuild)"
Targets="GetReferencesProvided"
BuildInParallel="true"
SkipNonexistentTargets="true"
SkipNonexistentProjects="true" >
<Output TaskParameter="TargetOutputs" ItemName="_ProjectReferenceProvider"/>
</MSBuild>
<PropertyGroup>
<ProjectListFile>$(MSBuildThisFileDirectory)..\eng\ProjectReferences.props</ProjectListFile>
<ProjectListContent>
<![CDATA[
<!--
This file is automatically generated. Run `build.cmd /t:GenerateProjectList` to update.
This file contains a map of assembly names to the projects that build them.
-->
<Project>
<ItemGroup>
@(_ProjectReferenceProvider->'<ProjectReferenceProvider Include="%(Identity)" ProjectPath="%24(RepositoryRoot)%(ProjectFileRelativePath)" />', '%0A ')
</ItemGroup>
</Project>
]]>
</ProjectListContent>
</PropertyGroup>
<WriteLinesToFile File="$(ProjectListFile)" Lines="$(ProjectListContent)" Overwrite="true" />
</Target>
<!-- This is temporary until we can use FrameworkReference to build our own packages. -->
<Target Name="RemoveSharedFrameworkOnlyRefsFromNuspec">
<ItemGroup>
<_BuildOutput Include="$(ArtifactsShippingPackagesDir)*.nupkg"
Exclude="$(ArtifactsShippingPackagesDir)*.symbols.nupkg" />
</ItemGroup>
<RepoTasks.RemoveSharedFrameworkDependencies Condition="@(_BuildOutput->Count()) != 0"
Files="@(_BuildOutput)"
FrameworkOnlyPackages="@(SharedFrameworkOnlyPackage)" />
</Target>
</Project>