These instructions assume an up-to-date Debian/Ubuntu system. For other platforms, please instead use the following:
Apart from the dependencies in third_party, some of the tools use external
dependencies that need to be installed on your system first:
sudo apt install clang cmake doxygen graphviz ninja-build libpng-devMake sure your default clang compiler is at least version 6 by running
clang --versionIf it still shows an old version despite having, for example, clang-7
installed, you need to update the default clang compiler.
On 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 100Optionally, to compile some of the extra tool support and tests you can install the following packages:
sudo apt install extra-cmake-modules g++ libbenchmark-dev libbenchmark-tools \
libgif-dev libgoogle-perftools-dev libgtest-dev libjpeg-dev libopenexr-dev \
libwebp-dev qt6-base-dev xdg-utilsFor the lint/coverage commands, you will also need additional packages:
sudo apt install clang-format clang-tidy curl parallel gcovrThe libjxl project uses CMake to build. We provide a script that simplifies
the invocation. To build and test the project, run
./ci.sh optThis writes binaries to build/tools and runs unit tests. More information
on build modes and testing is available.