xref: /aosp_15_r20/build/soong/docs/kotlin_with_annotation_processors.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_stubs [ label="library\nkotlin stubs" ];
22	}
23	{
24		rank="same";
25		lib_apt_src_jar [ label="library annotation\nprocessor sources" ];
26	}
27	{
28		rank="same";
29		lib_kotlin_classes [ label="library kotlin\n.class files" ];
30		lib_kotlin_headers [ label="library kotlin\nheader .class files" ];
31	}
32	{
33		rank="same";
34		lib_java_classes [ label="library java\n.class files" ];
35		lib_java_headers [ label="library java\nheader .class files" ];
36	}
37	{
38		rank="same";
39		lib_combined_classes [ label="combined library\n.class files" ];
40		lib_combined_headers [ label="combined library\nheader .class files" ];
41	}
42
43	node [ group="lib2"];
44	{
45		rank="same";
46		lib_spacer [ style=invis width=4 ];
47		lib2_kotlin_stubs [ label="library\nkotlin stubs" ];
48	}
49	{
50		rank="same";
51		lib2_apt_src_jar [ label="library annotation\nprocessor sources" ];
52	}
53	{
54		rank="same";
55		lib2_kotlin_classes [ label="library kotlin\n.class files" ];
56		lib2_kotlin_headers [ label="library kotlin\nheader .class files" ];
57	}
58	{
59		rank="same";
60		lib2_java_classes [ label="library java\n.class files" ];
61		lib2_java_headers [ label="library java\nheader .class files" ];
62	}
63	{
64		rank="same";
65		lib2_combined_classes [ label="combined library\n.class files" ];
66		lib2_combined_headers [ label="combined library\nheader .class files" ];
67	}
68
69	node [ group="app"];
70	{
71		rank="same";
72		lib2_spacer [ style=invis width=4 ];
73		app_kotlin_stubs [ label="app\nkotlin stubs" ];
74	}
75	{
76		rank="same";
77		app_apt_src_jar [ label="app annotation\nprocessor sources" ];
78	}
79	{
80		rank="same";
81		app_kotlin_classes [ label="app kotlin\n.class files" ];
82		app_kotlin_headers [ label="app kotlin\nheader .class files" ]	}
83	{
84		rank="same";
85		app_java_classes [ label="app java\n.class files" ];
86	}
87	{
88		rank="same";
89		app_combined_classes [ label="combined app and library\n.class files" ];
90	}
91	{
92		rank="same";
93		app_dex [ label="app classes.dex files" ];
94	}
95
96
97	node [ shape="rect" style="" color="black" ];
98	node [ group="lib"];
99	{
100		rank="same";
101		lib_kapt_action [ label="kapt" ];
102	}
103	{
104		rank="same";
105		lib_turbine_apt_action [ label="turbine apt" ];
106	}
107	{
108		rank="same";
109		lib_kotlinc_action [ label="kotlinc" ];
110	}
111	{
112		rank="same";
113		lib_turbine_action [ label="turbine" ];
114		lib_javac_action [ label="javac" ];
115	}
116	{
117		rank="same";
118		lib_combine_action [ label="merge_zips" ];
119		lib_combine_headers_action [ label="merge_zips" ];
120	}
121
122	node [ group="lib2"];
123	{
124		rank="same";
125		lib2_kapt_action [ label="kapt" ];
126	}
127	{
128		rank="same";
129		lib2_turbine_apt_action [ label="turbine apt" ];
130	}
131	{
132		rank="same";
133		lib2_kotlinc_action [ label="kotlinc" ];
134	}
135	{
136		rank="same";
137		lib2_turbine_action [ label="turbine" ];
138		lib2_javac_action [ label="javac" ];
139	}
140	{
141		rank="same";
142		lib2_combine_action [ label="merge_zips" ];
143		lib2_combine_headers_action [ label="merge_zips" ];
144	}
145
146	node [ group="app"];
147	{
148		rank="same";
149		app_kapt_action [ label="kapt" ];
150	}
151	{
152		rank="same";
153		app_turbine_apt_action [ label="turbine apt" ];
154	}
155	{
156		rank="same";
157		app_kotlinc_action [ label="kotlinc" ];
158	}
159	{
160		rank="same";
161		app_javac_action [ label="javac" ];
162	}
163	{
164		rank="same";
165		app_combine_action [ label="merge_zips" ];
166	}
167	{
168		rank="same";
169		app_r8_action [ label="r8" ];
170	}
171
172	// library
173
174	lib_kotlin_sources -> lib_kapt_action [ weight=0 ];
175	lib_java_sources -> lib_kapt_action;
176	lib_kapt_action -> lib_kotlin_stubs [ weight=100 ];
177
178	lib_kotlin_stubs -> lib_turbine_apt_action [ weight=100 ];
179	lib_turbine_apt_action -> lib_apt_src_jar [ weight=100 ];
180
181	lib_apt_src_jar -> lib_kotlinc_action [ weight=0 ];
182	lib_kotlin_sources -> lib_kotlinc_action [ weight=100 ];
183	lib_java_sources -> lib_kotlinc_action;
184	lib_kotlinc_action -> lib_kotlin_classes, lib_kotlin_headers [ weight=100 ];
185
186	lib_apt_src_jar -> lib_turbine_action [ weight=0 ];
187	lib_kotlin_headers -> lib_turbine_action [ weight=0 ];
188	lib_java_sources -> lib_turbine_action [ weight=100 ];
189	lib_turbine_action -> lib_java_headers [ weight=100 ];
190
191	lib_apt_src_jar -> lib_javac_action [ weight=0 ];
192	lib_kotlin_headers -> lib_javac_action [ weight=0 ];
193	lib_java_sources -> lib_javac_action [ weight=1000 ];
194	lib_javac_action -> lib_java_classes [ weight=100 ];
195
196	lib_kotlin_classes -> lib_combine_action [ weight = 0 ];
197	lib_java_classes -> lib_combine_action [ weight = 100 ];
198	lib_combine_action -> lib_combined_classes [ weight=100 ];
199
200	lib_kotlin_headers -> lib_combine_headers_action [ weight = 0 ];
201	lib_java_headers -> lib_combine_headers_action [ weight = 100 ];
202	lib_combine_headers_action -> lib_combined_headers [ weight=100 ];
203
204	lib_combined_headers -> lib_spacer [ style=invis ];
205
206	// library 2
207
208	lib_combined_headers -> lib2_kapt_action [ weight=0 ];
209	lib2_kotlin_sources -> lib2_kapt_action [ weight=0 ];
210	lib2_java_sources -> lib2_kapt_action;
211	lib2_kapt_action -> lib2_kotlin_stubs [ weight=100 ];
212
213	lib_combined_headers -> lib2_turbine_apt_action [ weight=0 ];
214	lib2_kotlin_stubs -> lib2_turbine_apt_action [ weight=100 ];
215	lib2_turbine_apt_action -> lib2_apt_src_jar [ weight=100 ];
216
217	lib_combined_headers -> lib2_kotlinc_action [ weight=0 ];
218	lib2_apt_src_jar -> lib2_kotlinc_action [ weight=0 ];
219	lib2_kotlin_sources -> lib2_kotlinc_action [ weight=100 ];
220	lib2_java_sources  -> lib2_kotlinc_action;
221	lib2_kotlinc_action -> lib2_kotlin_classes, lib2_kotlin_headers [ weight=100 ];
222
223	lib_combined_headers -> lib2_turbine_action [ weight=0 ];
224	lib2_apt_src_jar -> lib2_turbine_action [ weight=0 ];
225	lib2_kotlin_headers -> lib2_turbine_action [ weight=0 ];
226	lib2_java_sources -> lib2_turbine_action [ weight=100 ];
227	lib2_turbine_action -> lib2_java_headers [ weight=100 ];
228
229	lib_combined_headers -> lib2_javac_action [ weight=0 ];
230	lib2_apt_src_jar -> lib2_javac_action [ weight=0 ];
231	lib2_kotlin_headers -> lib2_javac_action [ weight=0 ];
232	lib2_java_sources -> lib2_javac_action [ weight=1000 ];
233	lib2_javac_action ->lib2_java_classes [ weight=100 ];
234
235	lib_combined_classes -> lib2_combine_action [ weight=0 ];
236	lib2_kotlin_classes -> lib2_combine_action [ weight=0 ];
237	lib2_java_classes -> lib2_combine_action [ weight=100 ];
238	lib2_combine_action -> lib2_combined_classes [ weight=100 ];
239
240	lib_combined_headers -> lib2_combine_headers_action [ weight=0 ];
241	lib2_kotlin_headers -> lib2_combine_headers_action [ weight=0 ];
242	lib2_java_headers -> lib2_combine_headers_action [ weight=100 ];
243	lib2_combine_headers_action -> lib2_combined_headers [ weight=100 ];
244
245	lib2_combined_headers -> lib2_spacer [ style=invis ];
246
247	// app
248
249	lib2_combined_headers -> app_kapt_action [ weight=0 ];
250	app_kotlin_sources -> app_kapt_action [ weight=0 ];
251	app_java_sources -> app_kapt_action;
252	app_kapt_action -> app_kotlin_stubs [ weight=100 ];
253
254	lib2_combined_headers -> app_turbine_apt_action [ weight=0 ];
255	app_kotlin_stubs -> app_turbine_apt_action [ weight=100 ];
256	app_turbine_apt_action -> app_apt_src_jar [ weight=100 ];
257
258	lib2_combined_headers -> app_kotlinc_action [ weight=0 ];
259	app_apt_src_jar -> app_kotlinc_action [ weight=0 ];
260	app_kotlin_sources -> app_kotlinc_action [ weight=100 ];
261	app_java_sources -> app_kotlinc_action;
262	app_kotlinc_action -> app_kotlin_headers, app_kotlin_classes [ weight=100 ];
263
264	lib2_combined_headers -> app_javac_action [ weight=0 ];
265	app_apt_src_jar -> app_javac_action [ weight=0 ];
266	app_kotlin_headers -> app_javac_action [ weight=0 ];
267	app_java_sources -> app_javac_action [ weight=1000 ];
268	app_javac_action -> app_java_classes [ weight=100 ];
269
270	lib2_combined_classes -> app_combine_action [ weight=0 ];
271	app_kotlin_classes -> app_combine_action [ weight=0 ];
272	app_java_classes -> app_combine_action [ weight=100 ];
273	app_combine_action -> app_combined_classes [ weight=100 ];
274
275	app_combined_classes -> app_r8_action;
276	app_r8_action -> app_dex [ weight=100 ];
277}
278