novomesk / qt-jpegxl-image-plugin

Qt plug-in to allow Qt and KDE based applications to read/write JXL images.
GNU General Public License v3.0
91 stars 8 forks source link

msys2/cmake/qt6 build crashes on vardct and modular #26

Closed eddiezato closed 1 year ago

eddiezato commented 1 year ago

I build the plugin in msys2/ucrt64 using cmake and Qt 6.5.1 since I can no longer do it with qmake-qt6. I use this plugin along with qimgv built in the same environment. Lately I've noticed that everything works correctly on jpeg transcoded jxls, but qimgv crashes on vardct and modular jxls. When building with qmake-qt6 this problem was not observed. Any suggestions?

Part of my script:

# build qjpegxl
if [[ $QJXL == 1 ]] ; then
    printf "\n${MGNT}:: Prepare libjxl ::${RST}\n"
    if [[ ! -d libjxl ]]; then
        git clone --branch v0.8.2 --depth 1 https://github.com/libjxl/libjxl.git
        cd libjxl
    else
        cd libjxl
        git pull
    fi

    cd third_party
    if [[ -z "$(ls -A skcms)" ]]; then git clone --depth 1 https://skia.googlesource.com/skcms
    else cd skcms; git pull; cd ..; fi
    if [[ -z "$(ls -A sjpeg)" ]]; then git clone --depth 1 https://github.com/webmproject/sjpeg.git
    else cd sjpeg; git pull; cd ..; fi
    cd ..
    if [[ -z "$(ls -A testdata)" ]]; then git clone --depth 1 https://github.com/libjxl/testdata
    else cd testdata; git pull; cd ..; fi

    # build libjxl
    printf "\n${MGNT}:: Build libjxl ::${RST}\n"
    rm -rf build
    cmake -B build -G Ninja -S ./ \
        -DCMAKE_INSTALL_PREFIX="$EXTDIR" \
        -DCMAKE_BUILD_TYPE=Release \
        -DBUILD_TESTING=OFF \
        -DJPEGXL_ENABLE_TOOLS=OFF \
        -DJPEGXL_ENABLE_DOXYGEN=OFF \
        -DJPEGXL_ENABLE_MANPAGES=OFF \
        -DJPEGXL_ENABLE_BENCHMARK=OFF \
        -DJPEGXL_ENABLE_EXAMPLES=OFF \
        -DJPEGXL_ENABLE_JNI=OFF \
        -DJPEGXL_ENABLE_OPENEXR=OFF \
        -DJPEGXL_WARNINGS_AS_ERRORS=OFF \
        -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
        -DJPEGXL_FORCE_SYSTEM_LCMS2=ON \
        -DJPEGXL_FORCE_SYSTEM_HWY=ON \
        -DCMAKE_C_FLAGS="$CFL" -DCMAKE_CXX_FLAGS="$CFL" -DCMAKE_EXE_LINKER_FLAGS="$LFL" \
        -Wno-dev
    ninja install -C build
    cd ..

    # build qjpegxl
    cd qimgv
    printf "\n${MGNT}:: Build qjpegxl-qt6 ::${RST}\n"
    if [[ ! -d qt-jpegxl-image-plugin ]]; then
        git clone --depth 1 https://github.com/novomesk/qt-jpegxl-image-plugin.git
        cd qt-jpegxl-image-plugin
        sed -i 's|set(REQUIRED_QT_VERSION 5.14.0)|set(REQUIRED_QT_VERSION 6.5.1)|' CMakeLists.txt
        sed -i 's|${QT_MAJOR_VERSION}|6|' CMakeLists.txt
        sed -i 's|${QT_MAJOR_VERSION}|6|' src/CMakeLists.txt
    fi
    rm -rf build
    cmake -B build -G Ninja -S ./ -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$EXTDIR" \
        -DCMAKE_C_FLAGS="$CFL" -DCMAKE_CXX_FLAGS="$CFL" -DCMAKE_EXE_LINKER_FLAGS="$LFL"
    ninja -C build
    cd ../..
fi
eddiezato commented 1 year ago

Sorry, it seems to be a qimgv bug from the commits following 22a8f2eb.