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