developing_in_debian.md (1681B)
1 # Developing in Debian 2 3 These instructions assume an up-to-date Debian/Ubuntu system. 4 For other platforms, please instead use the following: 5 6 * [Cross Compiling for Windows with Crossroad](developing_with_crossroad.md). 7 8 ## Minimum build dependencies 9 10 Apart from the dependencies in `third_party`, some of the tools use external 11 dependencies that need to be installed on your system first: 12 13 ```bash 14 sudo apt install cmake clang doxygen g++ extra-cmake-modules \ 15 libgif-dev libjpeg-dev ninja-build libgoogle-perftools-dev 16 ``` 17 18 Make sure your default `clang` compiler is at least version 6 by running 19 20 ```bash 21 clang --version 22 ``` 23 24 If it still shows an old version despite having, for example, `clang-7` installed, you need 25 to update the default `clang` compiler. On Debian-based systems run: 26 27 ```bash 28 sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-7 100 29 sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-7 100 30 ``` 31 32 Optionally, to compile some of the extra tool support and tests you can install 33 the following packages: 34 35 ```bash 36 sudo apt install qt6-base-dev libwebp-dev libgimp2.0-dev libopenexr-dev \ 37 libgtest-dev libgmock-dev libbenchmark-dev libbenchmark-tools 38 ``` 39 40 For the lint/coverage commands, you will also need additional packages: 41 42 ```bash 43 sudo apt install clang-format clang-tidy curl parallel gcovr 44 ``` 45 46 ## Building 47 48 The `libjxl` project uses CMake to build. We provide a script that simplifies the 49 invocation. To build and test the project, run 50 51 ```bash 52 ./ci.sh opt 53 ``` 54 55 This writes binaries to `build/tools` and runs unit tests. More information 56 on [build modes and testing](building_and_testing.md) is available.