Skip to content
This repository was archived by the owner on Jul 14, 2020. It is now read-only.

Commit 7777a61

Browse files
authored
Update Traversal to support Static Graph (#296)
1 parent 4a39320 commit 7777a61

1 file changed

Lines changed: 41 additions & 5 deletions

File tree

src/CBT.Traversal/build/Traversal.targets

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
</RebuildDependsOn>
1111
</PropertyGroup>
1212

13-
1413
<Import Project="$(CustomBeforeTraversalTargets)" Condition=" '$(CustomBeforeTraversalTargets)' != '' And Exists('$(CustomBeforeTraversalTargets)') " />
1514

1615
<Import Project="$(CBTLocalBuildExtensionsPath)\Before.$(MSBuildThisFile)" Condition=" '$(CBTLocalBuildExtensionsPath)' != '' And Exists('$(CBTLocalBuildExtensionsPath)\Before.$(MSBuildThisFile)') " />
@@ -31,20 +30,57 @@
3130
<ReBuildDependsOn>$(_tmpReBuildDependsOn)</ReBuildDependsOn>
3231
<BuildDependsOn>$(_tmpBuildDependsOn)</BuildDependsOn>
3332
<LanguageTargets>$(MSBuildThisFileDirectory)\Empty.props</LanguageTargets>
33+
<!--
34+
NuGet should always restore Traversal projects with "PackageReference" style restore. Setting this property will cause the right thing to happen even if there aren't any PackageReference items in the project.
35+
-->
36+
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
3437
</PropertyGroup>
38+
39+
<ItemDefinitionGroup Condition="'$(TraversalDoNotReferenceOutputAssemblies)' != 'false'">
40+
<ProjectReference>
41+
<!--
42+
Setting ReferenceOutputAssembly skips adding the outputs of the referenced project to an item
43+
-->
44+
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
45+
<!--
46+
Setting SkipGetTargetFrameworkProperties skips target framework cross-project validation in NuGet
47+
-->
48+
<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
49+
</ProjectReference>
50+
</ItemDefinitionGroup>
51+
52+
<ItemGroup>
53+
<ProjectReferenceTargets Remove="@(ProjectReferenceTargets)" />
54+
55+
<ProjectReferenceTargets Include="Build" Targets=".default" />
56+
<ProjectReferenceTargets Include="Clean" Targets="Clean" />
57+
<ProjectReferenceTargets Include="Test" Targets="Test" />
58+
<ProjectReferenceTargets Include="VSTest" Targets="VSTest" />
59+
<ProjectReferenceTargets Include="Publish" Targets="Publish" />
60+
<ProjectReferenceTargets Include="Pack" Targets="Pack" />
61+
</ItemGroup>
62+
63+
<ItemGroup Condition=" '$(TraversalTranslateProjectFileItems)' != 'false' ">
64+
<!--
65+
Translate the ProjectFile items by moving them to ProjectReference items instead.
66+
-->
67+
<ProjectReference Include="@(ProjectFile)" />
68+
69+
<ProjectFile Remove="@(ProjectFile)" />
70+
</ItemGroup>
3571

3672
<Target Name="Build" DependsOnTargets="$(BuildDependsOn)">
3773
<MSBuild Projects="@(PreTraversalProjectFile)" Targets="Build" Condition=" '@(PreTraversalProjectFile)' != '' " />
3874

39-
<MSBuild Projects="@(ProjectFile)" BuildInParallel="$(BuildInParallel)" SkipNonexistentProjects="$(SkipNonexistentProjects)" Properties="CBTModulesRestored=$(CBTModulesRestored);$(TraversalGlobalProperties);$(TraversalBuildGlobalProperties)" />
75+
<MSBuild Projects="@(ProjectReference)" BuildInParallel="$(BuildInParallel)" SkipNonexistentProjects="$(SkipNonexistentProjects)" Properties="CBTModulesRestored=$(CBTModulesRestored);$(TraversalGlobalProperties);$(TraversalBuildGlobalProperties)" />
4076

4177
<MSBuild Projects="@(PostTraversalProjectFile)" Targets="Build" Condition=" '@(PostTraversalProjectFile)' != '' " />
4278
</Target>
4379

4480
<Target Name="Clean" DependsOnTargets="$(CleanDependsOn)">
4581
<MSBuild Projects="@(PreTraversalProjectFile)" Targets="Clean" Condition=" '@(PreTraversalProjectFile)' != '' " />
4682

47-
<MSBuild Projects="@(ProjectFile)" Targets="Clean" BuildInParallel="$(BuildInParallel)" SkipNonexistentProjects="$(SkipNonexistentProjects)" Properties="CBTModulesRestored=$(CBTModulesRestored);$(TraversalGlobalProperties);$(TraversalCleanGlobalProperties)" />
83+
<MSBuild Projects="@(ProjectReference)" Targets="Clean" BuildInParallel="$(BuildInParallel)" SkipNonexistentProjects="$(SkipNonexistentProjects)" Properties="CBTModulesRestored=$(CBTModulesRestored);$(TraversalGlobalProperties);$(TraversalCleanGlobalProperties)" />
4884

4985
<MSBuild Projects="@(PostTraversalProjectFile)" Targets="Clean" Condition="'@(PostTraversalProjectFile)'!=''" />
5086
</Target>
@@ -54,15 +90,15 @@
5490
<Target Name="Restore" DependsOnTargets="$(RestoreDependsOn)">
5591
<MSBuild Projects="@(PreTraversalProjectFile)" Targets="Restore" Condition=" '@(PreTraversalProjectFile)' != '' " />
5692

57-
<MSBuild Projects="@(ProjectFile)" Targets="Restore" BuildInParallel="$(BuildInParallel)" SkipNonexistentProjects="$(SkipNonexistentProjects)" Properties="CBTModulesRestored=$(CBTModulesRestored);IsRestoreOnly=true;$(TraversalGlobalProperties);$(TraversalRestoreGlobalProperties)" />
93+
<MSBuild Projects="@(ProjectReference)" Targets="Restore" BuildInParallel="$(BuildInParallel)" SkipNonexistentProjects="$(SkipNonexistentProjects)" Properties="CBTModulesRestored=$(CBTModulesRestored);IsRestoreOnly=true;$(TraversalGlobalProperties);$(TraversalRestoreGlobalProperties)" />
5894

5995
<MSBuild Projects="@(PostTraversalProjectFile)" Targets="Restore" Condition="'@(PostTraversalProjectFile)'!=''" />
6096
</Target>
6197

6298
<Target Name="Test" DependsOnTargets="$(TestDependsOn)">
6399
<MSBuild Projects="@(PreTraversalProjectFile)" Targets="Test" Condition=" '@(PreTraversalProjectFile)' != '' " />
64100

65-
<MSBuild Projects="@(ProjectFile)" Targets="Test" BuildInParallel="$(BuildInParallel)" SkipNonexistentProjects="$(SkipNonexistentProjects)" Properties="CBTModulesRestored=$(CBTModulesRestored);$(TraversalGlobalProperties);$(TraversalTestGlobalProperties)" />
101+
<MSBuild Projects="@(ProjectReference)" Targets="Test" BuildInParallel="$(BuildInParallel)" SkipNonexistentProjects="$(SkipNonexistentProjects)" Properties="CBTModulesRestored=$(CBTModulesRestored);$(TraversalGlobalProperties);$(TraversalTestGlobalProperties)" />
66102

67103
<MSBuild Projects="@(PostTraversalProjectFile)" Targets="Test" Condition="'@(PostTraversalProjectFile)'!=''" />
68104
</Target>

0 commit comments

Comments
 (0)