diff --git a/Dependencies.md b/Dependencies.md new file mode 100644 index 0000000..a1d67ac --- /dev/null +++ b/Dependencies.md @@ -0,0 +1,93 @@ +# Main solution + +Graph of ``s, as of 2.10 RC1: +![bizhawk.dot.png](https://github.com/user-attachments/assets/8cfba00a-0852-46d4-8b93-01497fa4b826) + +Color | Legend +--:|:-- +green | *Standard* +blue | *Framework* +red | *Framework* via *Standard*† + +`-NRT` on a project indicates it has [nullable reference types](https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references) disabled by default. + +† doesn't cause issues if the *Standard* library is itself consumed in a *Framework* library or executable + +
+source +For use with Graphviz' `dot`. + +```dot +// BizHawk project dependency graph as of 2.10 RC1 +digraph G { + subgraph netstandard { + node [ color = "#007F00"; fontcolor = "#007F00"; ]; + "BizHawk.Bizware.Audio" [ label = "bh.Bizware.Audio -NRT" ]; + "BizHawk.Bizware.Graphics" [ label = "bh.Bizware.Graphics -NRT" ]; + "BizHawk.Bizware.Input" [ label = "bh.Bizware.Input -NRT" ]; + "BizHawk.Client.Common" [ label = "bh.Client.Common -NRT" ]; + "BizHawk.Common"; + "BizHawk.Emulation.Common" [ label = "bh.Emulation.Common" ]; + "BizHawk.Emulation.Cores" [ label = "bh.Emulation.Cores -NRT" ]; + "BizHawk.Emulation.DiscSystem" [ label = "bh.Emulation.DiscSystem -NRT" ]; + } + + subgraph netframework { + node [ color = "#00009F"; fontcolor = "#00009F"; ]; + "BizHawk.BizInvoke" [ label = "bh.BizInvoke" ]; + "BizHawk.Bizware.Graphics.Controls" [ label = "bh.Bizware.Graphics.Controls -NRT" ]; + "BizHawk.WinForms.Controls" [ label = "bh.WinForms.Controls" ]; + subgraph cluster_executable { + color = "#00009F3F"; + fontcolor = "#00009F"; + label = "Executable projects"; + "BizHawk.Bizware.Test" [ label = "bh.Bizware.Test" ]; + "BizHawk.Client.DiscoHawk" [ label = "bh.cl.DiscoHawk -NRT" ]; + "BizHawk.Client.EmuHawk" [ label = "bh.cl.EmuHawk -NRT" ]; + subgraph cluster_test { + label = "Test projects"; + "BizHawk.Tests"; + "BizHawk.Tests.Testroms.GB" [ label = "bh.ts.Testroms.GB" ]; + "BizHawk.Tests.Testroms.GB.GambatteSuite" [ label = "bh.ts.Testroms.GB.GambatteSuite" ]; + } + } + } + + subgraph netstandard_deps { + edge [ color = "#007F00"; ]; + "BizHawk.Bizware.Graphics" -> "BizHawk.Bizware.Graphics.Controls"; + "BizHawk.Bizware.Graphics" -> "BizHawk.Client.Common"; + "BizHawk.Client.Common" -> "BizHawk.Bizware.Audio"; + "BizHawk.Client.Common" -> "BizHawk.Bizware.Input"; + "BizHawk.Client.Common" -> "BizHawk.Tests"; + "BizHawk.Client.Common" -> "BizHawk.Tests.Testroms.GB"; + "BizHawk.Common" -> "BizHawk.BizInvoke"; + "BizHawk.Common" -> "BizHawk.Bizware.Graphics"; + "BizHawk.Common" -> "BizHawk.Emulation.DiscSystem"; + "BizHawk.Common" -> "BizHawk.WinForms.Controls"; + "BizHawk.Emulation.Common" -> "BizHawk.Emulation.Cores"; + "BizHawk.Emulation.Cores" -> "BizHawk.Client.Common"; + "BizHawk.Emulation.DiscSystem" -> "BizHawk.Client.DiscoHawk"; + "BizHawk.Emulation.DiscSystem" -> "BizHawk.Emulation.Cores"; + subgraph redundant { // removed in c22f2ab4f + edge [ color = "#007F003F"; constraint = false; ]; + "BizHawk.Bizware.Graphics" -> "BizHawk.Bizware.Test"; + "BizHawk.Bizware.Graphics" -> "BizHawk.Client.EmuHawk"; + "BizHawk.Bizware.Graphics" -> "BizHawk.Tests.Testroms.GB"; + "BizHawk.Common" -> "BizHawk.Emulation.Common"; + } + } + + subgraph netframework_deps { + edge [ color = "#00009F"; ]; + "BizHawk.BizInvoke" -> "BizHawk.Emulation.Common" [ color = "#9F0000"; ]; + "BizHawk.Bizware.Audio" -> "BizHawk.Client.EmuHawk"; + "BizHawk.Bizware.Graphics.Controls" -> "BizHawk.Bizware.Test"; + "BizHawk.Bizware.Graphics.Controls" -> "BizHawk.Client.EmuHawk"; + "BizHawk.Bizware.Input" -> "BizHawk.Client.EmuHawk"; + "BizHawk.Tests.Testroms.GB" -> "BizHawk.Tests.Testroms.GB.GambatteSuite"; + "BizHawk.WinForms.Controls" -> "BizHawk.Client.EmuHawk"; + } +} +``` +
\ No newline at end of file