iml_module ruleThe iml_module Bazel rule is relatively complicated, because it has to combine several tools: javac, kotlinc, formc, groovyc, etc.
Here is a graph showing how these tools are connected in the build graph when building a single iml module. Note that dashed lines represent inputs that are used as compile-time dependencies, but are not themselves transformed at the given build step.
To modify this image, edit assets/iml-module-build-graph.dot. Then run the following Graphviz command from within //tools/base/bazel/docs.
dot -Tpng:cairo:gd assets/iml-module-build-graph.dot -o assets/iml-module-build-graph.png