1digraph java { 2 //rankdir="LR"; 3 //splines="false"; 4 //cluster=true; 5 //node [ ordering="in" ]; 6 node [ shape="rect" style="rounded" color="blue" ]; 7 8 { 9 rank="same"; 10 lib_java_sources [ label="library\njava sources" group="lib" ]; 11 lib2_java_sources [ label="library\njava sources" group="lib2" ]; 12 app_java_sources [ label="app\njava sources" group="app" ]; 13 } 14 15 node [ group="lib"]; 16 { 17 rank="same"; 18 lib_java_classes [ label="library java\n.class files" ]; 19 lib_java_headers [ label="library java\nheader .class files" ]; 20 } 21 22 node [ group="lib2"]; 23 { 24 rank="same"; 25 lib_spacer [ style=invis width=4 ]; 26 lib2_java_classes [ label="library java\n.class files" ]; 27 lib2_java_headers [ label="library java\nheader .class files" ]; 28 } 29 { 30 rank="same"; 31 lib2_combined_classes [ label="combined library\n.class files" ]; 32 lib2_combined_headers [ label="combined library\nheader .class files" ]; 33 } 34 35 node [ group="app"]; 36 { 37 rank="same"; 38 lib2_spacer [ style=invis width=4 ]; 39 app_java_classes [ label="app java\n.class files" ]; 40 } 41 { 42 rank="same"; 43 app_combined_classes [ label="combined app and library\n.class files" ]; 44 } 45 { 46 rank="same"; 47 app_dex [ label="app classes.dex files" ]; 48 } 49 50 51 node [ shape="rect" style="" color="black" ]; 52 node [ group="lib"]; 53 { 54 rank="same"; 55 lib_turbine_action [ label="turbine" ]; 56 lib_javac_action [ label="javac" ]; 57 } 58 59 node [ group="lib2"]; 60 { 61 rank="same"; 62 lib2_turbine_action [ label="turbine" ]; 63 lib2_javac_action [ label="javac" ]; 64 } 65 { 66 rank="same"; 67 lib2_combine_action [ label="merge_zips" ]; 68 lib2_combine_headers_action [ label="merge_zips" ]; 69 } 70 71 node [ group="app"]; 72 { 73 rank="same"; 74 app_javac_action [ label="javac" ]; 75 } 76 { 77 rank="same"; 78 app_combine_action [ label="merge_zips" ]; 79 } 80 { 81 rank="same"; 82 app_r8_action [ label="r8" ]; 83 } 84 85 // library 86 87 lib_java_sources -> lib_turbine_action [ weight=100 ]; 88 lib_turbine_action -> lib_java_headers [ weight=100 ]; 89 90 lib_java_sources -> lib_javac_action [ weight=1000 ]; 91 lib_javac_action -> lib_java_classes [ weight=100 ]; 92 93 lib_java_headers -> lib_spacer [ style=invis ]; 94 95 // library 2 96 97 lib_java_headers -> lib2_turbine_action [ weight=0 ]; 98 lib2_java_sources -> lib2_turbine_action [ weight=100 ]; 99 lib2_turbine_action -> lib2_java_headers [ weight=100 ]; 100 101 lib_java_headers -> lib2_javac_action [ weight=0 ]; 102 lib2_java_sources -> lib2_javac_action [ weight=1000 ]; 103 lib2_javac_action ->lib2_java_classes [ weight=100 ]; 104 105 lib_java_classes -> lib2_combine_action [ weight=0 ]; 106 lib2_java_classes -> lib2_combine_action [ weight=100 ]; 107 lib2_combine_action -> lib2_combined_classes [ weight=100 ]; 108 109 lib_java_headers -> lib2_combine_headers_action [ weight=0 ]; 110 lib2_java_headers -> lib2_combine_headers_action [ weight=100 ]; 111 lib2_combine_headers_action -> lib2_combined_headers [ weight=100 ]; 112 113 lib2_combined_headers -> lib2_spacer [ style=invis ]; 114 115 // app 116 117 lib2_combined_headers -> app_javac_action [ weight=0 ]; 118 app_java_sources -> app_javac_action [ weight=1000 ]; 119 app_javac_action -> app_java_classes [ weight=100 ]; 120 121 lib2_combined_classes -> app_combine_action [ weight=0 ]; 122 app_java_classes -> app_combine_action [ weight=100 ]; 123 app_combine_action -> app_combined_classes [ weight=100 ]; 124 125 app_combined_classes -> app_r8_action; 126 app_r8_action -> app_dex [ weight=100 ]; 127} 128