Skip to content

Commit e429b61

Browse files
authored
Add GraphViz dependency graph generator project (#1486)
* Add GraphViz dependency graph generator project * Move generate-graphviz.proj to subdir Something relies on tools-local/init-build.proj being the only project in the directory, causing PR validation to fail.
1 parent 19c2e7c commit e429b61

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

repos/dir.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,7 @@
498498
<Target Name="GetProjectDirectory" Outputs="$(ProjectDirectory)" />
499499
<Target Name="GetOrchestratedManifestBuildName" Outputs="$(OrchestratedManifestBuildName)" />
500500
<Target Name="GetOfficialBuildId" Outputs="$(OfficialBuildId)" />
501+
<Target Name="GetRepositoryReferences" Outputs="@(RepositoryReference)" />
501502

502503
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., dir.targets))/dir.targets" />
503504
</Project>
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<Project>
2+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))/dir.props" />
3+
4+
<Target Name="Build">
5+
<ItemGroup>
6+
<AllRepoProjects
7+
Include="$(ProjectDir)repos\*.proj"
8+
Exclude="
9+
$(ProjectDir)repos\known-good.proj;
10+
$(ProjectDir)repos\known-good-tests.proj" />
11+
</ItemGroup>
12+
13+
<MSBuild
14+
Projects="@(AllRepoProjects)"
15+
Targets="GetRepositoryReferences">
16+
<Output TaskParameter="TargetOutputs" ItemName="RepoReferences" />
17+
</MSBuild>
18+
19+
<ItemGroup>
20+
<RepoLink Include="%(RepoReferences.MSBuildSourceProjectFile)" SourceRepo="%(RepoReferences.Identity)" />
21+
<RepoLink TargetRepo="%(Filename)" />
22+
<RepoLink Text="&quot;%(SourceRepo)&quot; -> &quot;%(TargetRepo)&quot;" />
23+
</ItemGroup>
24+
25+
<PropertyGroup>
26+
<GraphVizFile>$(BaseIntermediatePath)graphviz.dot</GraphVizFile>
27+
<GraphVizPngFile>$(BaseIntermediatePath)graphviz.png</GraphVizPngFile>
28+
<GraphVizContent>digraph {
29+
graph [ dpi = 150 ]
30+
@(RepoLink -> '%(Text)')
31+
}</GraphVizContent>
32+
</PropertyGroup>
33+
34+
<WriteLinesToFile
35+
Lines="$(GraphVizContent)"
36+
File="$(GraphVizFile)"
37+
Overwrite="True" />
38+
39+
<Message Importance="High" Text="$(MSBuildProjectName) -> $(GraphVizFile)" />
40+
41+
<Exec
42+
Condition="'$(GraphVizDir)' != ''"
43+
Command="$([MSBuild]::NormalizePath('$(GraphVizDir)', 'dot')) $(GraphVizFile) -Tpng:cairo -o $(GraphVizPngFile)" />
44+
45+
<Message Condition="'$(GraphVizDir)' != ''" Importance="High" Text="$(MSBuildProjectName) -> $(GraphVizPngFile)" />
46+
</Target>
47+
48+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))/dir.targets" />
49+
</Project>

0 commit comments

Comments
 (0)