mirror of
https://github.com/encounter/buildcache.git
synced 2026-07-09 18:18:50 -07:00
bc41c1b0c7229daadaa16f54869ae04cadebd1e7
* Don't depend on config_t in lock_file_t * Fixes for long path names * Add unit and stress tests for local locks * Rename config to BUILDCACHE_REMOTE_LOCKS (default = false)
BuildCache 
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
Languages
C++
88%
Lua
6.7%
CMake
3.1%
Shell
1.3%
Python
0.9%