makedepends=(asciidoc brotli git cmake doxygen giflib gperftools graphviz gtest highway openjdk libjpeg-turbo2
             libpng xdg-utils libpng libxml2)

description="JPEG XL image format reference implementation"
url="https://jpeg.org/jpegxl/"

packager="Great-OS Team"
maintainer="Great-OS Team"

name="libjxl"
version=0.11.2
_commit="794a5dc"
release=1

source=()

prepare() {
    git clone https://github.com/libjxl/libjxl $name-$version
    git clone https://github.com/mm2/Little-CMS
    git clone https://github.com/webmproject/sjpeg
    git clone https://skia.googlesource.com/skcms
    git clone https://github.com/libjxl/testdata libjxl-testdata
    git clone https://github.com/libjpeg-turbo/libjpeg-turbo

    cd $name-$version

    git checkout 794a5dc

    git submodule init
    local _submodule
    for _submodule in libjpeg-turbo sjpeg skcms
    do
        git config --local "submodule.third_party/${_submodule}.url" "${SRC}/${_submodule}"
    done
    for _submodule in brotli googletest highway libpng zlib
    do
        git config --local "submodule.third_party/${_submodule}.update" none
    done
    git config --local submodule.third_party/lcms.url "${SRC}/Little-CMS"
    git config --local submodule.third_party/testdata.url "${SRC}/libjxl-testdata"
    git -c protocol.file.allow='always' submodule update
}
build() {
    export CFLAGS+=' -DNDEBUG -ffat-lto-objects';
    export CXXFLAGS+=' -DNDEBUG -ffat-lto-objects';
    cmake -B build \
          -S $name-$version \
          -G 'Unix Makefiles' \
          -DCMAKE_BUILD_TYPE:STRING='None' \
          -DCMAKE_INSTALL_PREFIX:PATH='/usr' \
          -DCMAKE_POLICY_VERSION_MINIMUM:STRING='3.5.0' \
          -DJPEGXL_ENABLE_MANPAGES:BOOL='false' \
          -DJPEGXL_BUNDLE_LIBPNG:BOOL='false' \
          -DJPEGXL_ENABLE_AVX512:BOOL='true' \
          -DJPEGXL_ENABLE_BENCHMARK:BOOL='false' \
          -DJPEGXL_ENABLE_EXAMPLES:BOOL='false' \
          -DJPEGXL_ENABLE_FUZZERS:BOOL='false' \
          -DJPEGXL_ENABLE_OPENEXR:BOOL='false' \
          -DJPEGXL_ENABLE_PLUGINS:BOOL='false' \
          -DJPEGXL_ENABLE_VIEWERS:BOOL='false' \
          -DJPEGXL_FORCE_SYSTEM_BROTLI:BOOL='true' \
          -DJPEGXL_FORCE_SYSTEM_GTEST:BOOL='true' \
          -DJPEGXL_FORCE_SYSTEM_HWY:BOOL='true' \
          -DJPEGXL_INSTALL_JARDIR='/usr/share/java' \
          -Wno-dev

    cmake --build build
    make -C build doc
}
package() {
    DESTDIR="$PKG" cmake --install build
    install -D -m644 libjxl-$version/{LICENSE,PATENTS} -t "${PKG}/usr/share/licenses/${name}-$version";
    mv "${PKG}/usr/share/java"/{org.jpeg.jpegxl,jpegxl}.jar
}
