xref: /aosp_15_r20/build/soong/docs/kotlin.dot (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
1digraph java {
2	//rankdir="LR";
3	//splines="false";
4	//cluster=true;
5	ranksep="0.75 equally"
6	//node [ ordering="in" ];
7	node [ shape="rect" style="rounded" color="blue" ];
8	{
9		rank="same";
10		lib_java_sources [ label="library\njava sources" group="lib" ];
11		lib_kotlin_sources [ label="library\nkotlin sources" group="lib" ];
12		lib2_java_sources [ label="library\njava sources" group="lib2" ];
13		lib2_kotlin_sources [ label="library\nkotlin sources" group="lib2" ];
14		app_java_sources [ label="app\njava sources" group="app" ];
15		app_kotlin_sources [ label="app\nkotlin sources" group="app" ];
16	}
17
18	node [ group="lib"];
19	{
20		rank="same";
21		lib_kotlin_classes [ label="library kotlin\n.class files" ];
22		lib_kotlin_headers [ label="library kotlin\nheader .class files" ];
23	}
24	{
25		rank="same";
26		lib_java_classes [ label="library java\n.class files" ];
27		lib_java_headers [ label="library java\nheader .class files" ];
28	}
29	{
30		rank="same";
31		lib_combined_classes [ label="combined library\n.class files" ];
32		lib_combined_headers [ label="combined library\nheader .class files" ];
33	}
34
35	node [ group="lib2"];
36	{
37		rank="same";
38		lib_spacer [ style=invis width=4 ];
39		lib2_kotlin_classes [ label="library kotlin\n.class files" ];
40		lib2_kotlin_headers [ label="library kotlin\nheader .class files" ];
41	}
42	{
43		rank="same";
44		lib2_java_classes [ label="library java\n.class files" ];
45		lib2_java_headers [ label="library java\nheader .class files" ];
46	}
47	{
48		rank="same";
49		lib2_combined_classes [ label="combined library\n.class files" ];
50		lib2_combined_headers [ label="combined library\nheader .class files" ];
51	}
52
53	node [ group="app"];
54	{
55		rank="same";
56		lib2_spacer [ style=invis width=4 ];
57		app_kotlin_classes [ label="app kotlin\n.class files" ];
58		app_kotlin_headers [ label="app kotlin\nheader .class files" ]	}
59	{
60		rank="same";
61		app_java_classes [ label="app java\n.class files" ];
62	}
63	{
64		rank="same";
65		app_combined_classes [ label="combined app and library\n.class files" ];
66	}
67	{
68		rank="same";
69		app_dex [ label="app classes.dex files" ];
70	}
71
72
73	node [ shape="rect" style="" color="black" ];
74	node [ group="lib"];
75	{
76		rank="same";
77		lib_kotlinc_action [ label="kotlinc" ];
78	}
79	{
80		rank="same";
81		lib_turbine_action [ label="turbine" ];
82		lib_javac_action [ label="javac" ];
83	}
84	{
85		rank="same";
86		lib_combine_action [ label="merge_zips" ];
87		lib_combine_headers_action [ label="merge_zips" ];
88	}
89
90	node [ group="lib2"];
91	{
92		rank="same";
93		lib2_kotlinc_action [ label="kotlinc" ];
94	}
95	{
96		rank="same";
97		lib2_turbine_action [ label="turbine" ];
98		lib2_javac_action [ label="javac" ];
99	}
100	{
101		rank="same";
102		lib2_combine_action [ label="merge_zips" ];
103		lib2_combine_headers_action [ label="merge_zips" ];
104	}
105
106	node [ group="app"];
107	{
108		rank="same";
109		app_kotlinc_action [ label="kotlinc" ];
110	}
111	{
112		rank="same";
113		app_javac_action [ label="javac" ];
114	}
115	{
116		rank="same";
117		app_combine_action [ label="merge_zips" ];
118	}
119	{
120		rank="same";
121		app_r8_action [ label="r8" ];
122	}
123
124	// library
125
126	lib_kotlin_sources -> lib_kotlinc_action [ weight=100 ];
127	lib_java_sources -> lib_kotlinc_action;
128	lib_kotlinc_action -> lib_kotlin_classes, lib_kotlin_headers [ weight=100 ];
129
130	lib_kotlin_headers -> lib_turbine_action [ weight=0 ];
131	lib_java_sources -> lib_turbine_action [ weight=100 ];
132	lib_turbine_action -> lib_java_headers [ weight=100 ];
133
134	lib_kotlin_headers -> lib_javac_action [ weight=0 ];
135	lib_java_sources -> lib_javac_action [ weight=1000 ];
136	lib_javac_action -> lib_java_classes [ weight=100 ];
137
138	lib_kotlin_classes -> lib_combine_action [ weight = 0 ];
139	lib_java_classes -> lib_combine_action [ weight = 100 ];
140	lib_combine_action -> lib_combined_classes [ weight=100 ];
141
142	lib_kotlin_headers -> lib_combine_headers_action [ weight = 0 ];
143	lib_java_headers -> lib_combine_headers_action [ weight = 100 ];
144	lib_combine_headers_action -> lib_combined_headers [ weight=100 ];
145
146	lib_combined_headers -> lib_spacer [ style=invis ];
147
148	// library 2
149
150	lib_combined_headers -> lib2_kotlinc_action [ weight=0 ];
151	lib2_kotlin_sources -> lib2_kotlinc_action [ weight=100 ];
152	lib2_java_sources  -> lib2_kotlinc_action;
153	lib2_kotlinc_action -> lib2_kotlin_classes, lib2_kotlin_headers [ weight=100 ];
154
155	lib_combined_headers -> lib2_turbine_action [ weight=0 ];
156	lib2_kotlin_headers -> lib2_turbine_action [ weight=0 ];
157	lib2_java_sources -> lib2_turbine_action [ weight=100 ];
158	lib2_turbine_action -> lib2_java_headers [ weight=100 ];
159
160	lib_combined_headers -> lib2_javac_action [ weight=0 ];
161	lib2_kotlin_headers -> lib2_javac_action [ weight=0 ];
162	lib2_java_sources -> lib2_javac_action [ weight=1000 ];
163	lib2_javac_action ->lib2_java_classes [ weight=100 ];
164
165	lib_combined_classes -> lib2_combine_action [ weight=0 ];
166	lib2_kotlin_classes -> lib2_combine_action [ weight=0 ];
167	lib2_java_classes -> lib2_combine_action [ weight=100 ];
168	lib2_combine_action -> lib2_combined_classes [ weight=100 ];
169
170	lib_combined_headers -> lib2_combine_headers_action [ weight=0 ];
171	lib2_kotlin_headers -> lib2_combine_headers_action [ weight=0 ];
172	lib2_java_headers -> lib2_combine_headers_action [ weight=100 ];
173	lib2_combine_headers_action -> lib2_combined_headers [ weight=100 ];
174
175	lib2_combined_headers -> lib2_spacer [ style=invis ];
176
177	// app
178
179	lib2_combined_headers -> app_kotlinc_action [ weight=0 ];
180	app_kotlin_sources -> app_kotlinc_action [ weight=100 ];
181	app_java_sources -> app_kotlinc_action;
182	app_kotlinc_action -> app_kotlin_headers, app_kotlin_classes [ weight=100 ];
183
184	lib2_combined_headers -> app_javac_action [ weight=0 ];
185	app_kotlin_headers -> app_javac_action [ weight=0 ];
186	app_java_sources -> app_javac_action [ weight=1000 ];
187	app_javac_action -> app_java_classes [ weight=100 ];
188
189	lib2_combined_classes -> app_combine_action [ weight=0 ];
190	app_kotlin_classes -> app_combine_action [ weight=0 ];
191	app_java_classes -> app_combine_action [ weight=100 ];
192	app_combine_action -> app_combined_classes [ weight=100 ];
193
194	app_combined_classes -> app_r8_action;
195	app_r8_action -> app_dex [ weight=100 ];
196}
197