To build ccache you need:
-
CMake 3.15 or newer.
-
A C++17 compiler. See Supported platforms, compilers and languages for details.
-
A C99 compiler.
-
libzstd. If you don't have libzstd installed and can't or don't want to install it in a standard system location, it will be automatically downloaded, built and linked statically as part of the build process. To disable this, pass
-DZSTD_FROM_INTERNET=OFF
tocmake
. You can also install zstd in a custom path and pass-DCMAKE_PREFIX_PATH=/some/custom/path
tocmake
.To link libzstd statically (and you have a static libzstd available), pass
-DSTATIC_LINK=ON
tocmake
. This is the default on Windows. Alternatively, use-DZSTD_LIBRARY=/path/to/libzstd.a
.
Optional:
-
hiredis for the Redis storage backend. If you don't have libhiredis installed and can't or don't want to install it in a standard system location, it will be automatically downloaded, built and linked statically as part of the build process. To disable this, pass
-DHIREDIS_FROM_INTERNET=OFF
to cmake. You can also install hiredis in a custom path and pass-DCMAKE_PREFIX_PATH=/some/custom/path
tocmake
.To link libhiredis statically (and you have a static libhiredis available), pass
-DSTATIC_LINK=ON
tocmake
. This is the default on Windows. Alternatively, use-DHIREDIS_LIBRARY=/path/to/libhiredis.a
. -
GNU Bourne Again SHell (bash) for tests.
-
Asciidoctor to build the HTML documentation.
-
Python to debug and run the performance test suite.
Reference configurations:
- See CI configurations for a selection of regularly tested build setups, including cross-compiling and explicit dependencies required in Debian/Ubuntu environment.
Here is the typical way to build and install ccache:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
You can set the installation directory to e.g. /usr
by adding
-DCMAKE_INSTALL_PREFIX=/usr
to the cmake
command. You can set the directory
where the system configuration file should be located to e.g. /etc
by adding
-DCMAKE_INSTALL_SYSCONFDIR=/etc
.
There are two different ways to use ccache to cache a compilation:
-
Prefix your compilation command with
ccache
. This method is most convenient if you just want to try out ccache or wish to use it for some specific projects. -
Let ccache masquerade as the compiler. This method is most useful when you wish to use ccache for all your compilations. To do this, create a symbolic link to ccache named as the compiler. For example, here is how to set up ccache to masquerade as
gcc
andg++
:cp ccache /usr/local/bin/ ln -s ccache /usr/local/bin/gcc ln -s ccache /usr/local/bin/g++
On platforms that don't support symbolic links you can simply copy ccache to the compiler name instead for a similar effect:
cp ccache /usr/local/bin/gcc cp ccache /usr/local/bin/g++
And so forth. This will work as long as the directory with symbolic links or ccache copies comes before the directory with the compiler (typically
/usr/bin
) inPATH
.