/buildcache

A build cache

Primary LanguageC++zlib LicenseZlib

BuildCache Build Status

This is a simple compiler accelerator that caches and reuses build results to avoid unnecessary re-compilations, and thereby speeding up the build process.

It is similar in spirit to ccache, sccache and clcache.

Features

  • Works on different operating systems:
    • Linux
    • macOS
    • Windows
    • Though untested, it probably works on most BSD:s
  • A modular compiler support system:
    • Built-in support for popular compilers.
    • Extensible via custom Lua scripts.
    • In addition to caching compilation results, BuildCache can be used for caching almost any reproducible program artifacts (e.g. test results, rendered images, etc).
  • A fast local file system cache.
  • Can optionally use a remote, shared server as a second level cache.
  • Optional compression with LZ4 or ZSTD (almost negligable overhead).

Supported compilers and languages

Currently the following compilers and languages are supported:

Compiler Languages Support
GCC C, C++ Built-in
Clang C, C++ Built-in
Microsoft Visual C++ C, C++ Built-in
Green Hills Optimizing Compilers C, C++ Built-in
TI TMS320C6000 Optimizing Compiler C, C++ Built-in
TI ARM Optimizing C/C++ Compiler C, C++ Built-in
TI ARP32 Optimizing C/C++ Compiler C, C++ Built-in
scan-build static analyzer C, C++ Built-in

New backends are relatively easy to add, both as built-in wrappers in C++ and as Lua wrappers.

Status

BuildCache has been used daily in production environments for years with near zero issues (any problem that has emereged has of course been fixed), which gives it a good track record.

With that said, BuildCache is still considered to be under development.

Documentation