[4] There are built-in rules for building software written in Java, Kotlin, Scala, C, C++, Go, Python, Rust, JavaScript, Objective-C, and bash scripts.
[4][6] Bazel can produce software application packages suitable for deployment for the Android and iOS operating systems.
When Bazel performs a separate compilation, it creates a new directory and fills it with symlinks to the explicit input dependencies for the rule.
For languages like C or C++, this requires the user to be explicit about the dependencies and it prevents the unexpected inclusion of a similarly named header file from another including directory.
This sandbox approach leads to issues with common build tools, resulting in a number of workarounds required to correctly compile code under different architectures.
Similar handling needs to take place in linking phases, rewriting the rpath values in shared object libraries with a command like install_name_tool.
On July 5, 2017, the Bazel Blog announced a new logo,[20] consisting of three green building blocks arranged to shape a heart.