C++ Toolchains in Bazel

Rob
VSCO Stories
Published in
1 min readAug 3, 2017

At VSCO, we’ve had great success with the Bazel build system. We use it to build Go, Java, Python, Rust, and C++ projects. Overall, our experience has been pretty smooth, but we have had some problems with its C++ toolchain. By default, Bazel searches the local machine for an appropriate compiler, and what it finds can vary from machine to machine.

VSCO photo by thatkat

To provide a smoother experience for our developers, we’ve chosen to leverage Chromium’s copies of LLVM and various Linux tools to ensure a consistent environment for our Bazel builds. We’re successfully compiling open source projects like TensorFlow, TensorFlow Serving, nginx, Google Test, and statsd, as well as our own internal code.

Today, we’re making these Bazel tools available to everyone. Check it out on Github: https://github.com/vsco/bazel-toolchains.

Thanks to Lucas Kacher and Melinda Lu for reviewing.

--

--