Skip to content

Dependencies

YoshiRulz edited this page Nov 21, 2024 · 3 revisions

Main solution

Graph of <ProjectReference/>s, as of 2.10 RC1: bizhawk.dot.png

Color Legend
green Standard
blue Framework
red Framework via Standard

-NRT on a project indicates it has nullable reference types 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.

// BizHawk project dependency graph as of 2.10 RC1
digraph G {
	bgcolor = "transparent";
	fontcolor = "#FFFFFF";
	fontname = "Arial";
	labelloc = "b";
	mclimit = 10.0;
	pad = 0.2;
	rankdir = "BT";
	edge [ penwidth = 1.5; ];
	node [ fontcolor = "#FFFFFF"; fontname = "Arial"; shape = "box"; style = "filled"; ]
	subgraph netstandard {
		node [ color = "#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"; ];
		"BizHawk.BizInvoke";
		"BizHawk.Bizware.Graphics.Controls" [ label = "bh.Bizware.Graphics.Controls -NRT" ];
		"BizHawk.WinForms.Controls" [ label = "bh.WinForms.Controls" ];
		subgraph cluster_executable {
			bgcolor = "#3F3F3F7F";
			color = "#FFFFFF7F";
			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 = "#7FFF7F3F"; constraint = false; headport = "s"; ];
			"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";
	}
}