#### Beyond Linux® From Scratch (System V Edition) - Version 12.3

### Chapter 10. Graphics and Font Libraries

- Prev

  libjpeg-turbo-3.0.1

- Next

  libmng-2.0.3

- Up
- Home

# libjxl-0.11.1

## Introduction to libjxl

The libjxl package contains the reference implementation of the JPEG XL image format.

This package is known to build and work properly using an LFS 12.3 platform.

### Package Information

- Download (HTTP): https://github.com/libjxl/libjxl/archive/v0.11.1/libjxl-0.11.1.tar.gz

- Download MD5 sum: 8f26fc954c2d9cb377544a5f029182ef

- Download size: 1.8 MB

- Estimated disk space required: 57 MB

- Estimated build time: 0.9 SBU (with parallelism=4)

### libjxl Dependencies

#### Required

Brotli-1.1.0, CMake-3.31.5, giflib-5.2.2, highway-1.2.0, Little CMS-2.17, libjpeg-turbo-3.0.1, and libpng-1.6.46

#### Recommended

gdk-pixbuf-2.42.12 (for the plugin)

#### Optional

asciidoc-10.2.1 (for man pages), Doxygen-1.13.2 and Graphviz-12.2.1 (for documentation), Java-23.0.2 (for the JAR), libavif-1.2.0, libwebp-1.5.0, gtest, OpenEXR, sjpeg, and skcms

## Installation of libjxl

Install libjxl by running the following commands:

    mkdir build &&
    cd    build &&

    cmake -D CMAKE_INSTALL_PREFIX=/usr             \
          -D CMAKE_BUILD_TYPE=Release              \
          -D BUILD_TESTING=OFF                     \
          -D BUILD_SHARED_LIBS=ON                  \
          -D JPEGXL_ENABLE_SKCMS=OFF               \
          -D JPEGXL_ENABLE_SJPEG=OFF               \
          -D JPEGXL_ENABLE_PLUGINS=ON              \
          -D JPEGXL_INSTALL_JARDIR=/usr/share/java \
          -G Ninja ..                              &&
    ninja

This package does come with a test suite, but it requires gtest, which is not in BLFS.

Now, as the `root` user:

    ninja install &&
    gdk-pixbuf-query-loaders --update-cache

## Command Explanations

gdk-pixbuf-query-loaders --update-cache: This command regenerates the GDK Pixbuf loader cache so that it is aware of the JPEG-XL loader.

`-D BUILD_TESTING=OFF`: This parameter disables the tests because they require gtest, which is not in BLFS. If you wish to run the tests and have gtest installed, remove this parameter.

`-D BUILD_SHARED_LIBS=ON`: This parameter enables building shared versions of the libraries instead of static ones.

`-D JPEGXL_ENABLE_SKCMS=OFF`: This parameter disables building support for Skia's skcms since it is not necessary for BLFS purposes and requires skcms.

`-D JPEGXL_ENABLE_SJPEG=OFF`: This parameter disables support for SimpleJPEG since it is not necessary for BLFS purposes and requires sjpeg.

`-D JPEGXL_ENABLE_PLUGINS=ON`: This parameter enables Plugin support, which creates plugins for gdk-pixbuf-2.42.12 if the package is installed.

`-D JPEGXL_INSTALL_JARDIR=/usr/share/java`: This parameter places the JAR file for JPEG XL support in the correct directory if Java-23.0.2 is installed.

## Contents

Installed Programs: benchmark_xl, cjxl, djxl, and jxlinfo
Installed Libraries: libjxl.so, libjxl_cms.so, libjxl_extras_codec.so, libjxl_jni.so, libjxl_threads.so, and libpixbufloader-jxl.so (in /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders)
Installed Directories: /usr/include/jxl

### Short Descriptions

benchmark_xl | runs performance benchmarks against libjxl
cjxl | compresses images into JPEG XL format
djxl | decompresses images from JPEG XL format into other formats
jxlinfo | displays information about JPEG XL images
`libjxl.so` | contains the reference implementation of the JPEG XL standard
`libjxl_cms.so` | contains support for Little CMS in libjxl
`libjxl_extras_codec.so` | contains additional codec support for JPEG XL images
`libjxl_jni.so` | contains a Java interface to support JPEG XL on systems where Java-23.0.2 was installed at build time
`libjxl_threads.so` | contains threading functions for JPEG XL
`libpixbufloader-jxl.so` | contains a loader for gdk-pixbuf to allow it to load JPEG XL images

- Prev

  libjpeg-turbo-3.0.1

- Next

  libmng-2.0.3

- Up
- Home