Skip to content

Latest commit

 

History

History
57 lines (40 loc) · 1.64 KB

developing_in_debian.md

File metadata and controls

57 lines (40 loc) · 1.64 KB

Developing in Debian

These instructions assume an up-to-date Debian/Ubuntu system. For other platforms, please instead use the following:

Minimum build dependencies

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 cmake clang doxygen g++ extra-cmake-modules \
  libgif-dev libjpeg-dev ninja-build libgoogle-perftools-dev \
  graphviz

Make sure your default clang compiler is at least version 6 by running

clang --version

If 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 100

Optionally, to compile some of the extra tool support and tests you can install the following packages:

sudo apt install qt6-base-dev libwebp-dev libgimp2.0-dev libopenexr-dev \
  libgtest-dev libbenchmark-dev libbenchmark-tools

For the lint/coverage commands, you will also need additional packages:

sudo apt install clang-format clang-tidy curl parallel gcovr

Building

The libjxl 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.