These instructions assume an up-to-date Debian/Ubuntu system. For other platforms, please instead use the Docker container.
Apart from the dependencies in third_party, some of the tools use external dependencies that need to be installed in your system first:
sudo apt install cmake clang doxygen g++-8 extra-cmake-modules libgif-dev \
libjpeg-dev ninja-build libgoogle-perftools-dev
Make sure your default "clang" compiler is at least version 6 running
clang --version
If it still shows an old version despite having for example a clang-7 installed, you need to update the default clang compiler. In Debian-based systems run:
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-7 100
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-7 100
Optionally, to compile some of the extra tool support and tests you can install the following packages:
sudo apt install qtbase5-dev libqt5x11extras5-dev libwebp-dev libgimp2.0-dev \
libopenexr-dev libgtest-dev libgmock-dev
For the lint/coverage commands, you will also need additional packages:
sudo apt install clang-format clang-tidy curl parallel gcovr
The project uses CMake to build. We provide a script that simplifies the invocation. To build and test the project, run
./ci.sh opt
This writes binaries to build/tools
and runs unit tests. More information
on build modes and testing is available.