Commit c9a0e8fb for libheif

commit c9a0e8fb8af895e2bd4d8b7668908ad7095cd79a
Author: Dirk Farin <dirk.farin@gmail.com>
Date:   Fri Jan 9 22:14:08 2026 +0100

    add 'uncompressed' codec option to wasm build script

diff --git a/build-emscripten.sh b/build-emscripten.sh
index 8e84160d..6a1374df 100755
--- a/build-emscripten.sh
+++ b/build-emscripten.sh
@@ -19,12 +19,22 @@ fi
 SRCDIR=$1

 CORES="${CORES:-`nproc --all`}"
+
 ENABLE_LIBDE265="${ENABLE_LIBDE265:-1}"
 LIBDE265_VERSION="${LIBDE265_VERSION:-1.0.15}"
+
 ENABLE_AOM="${ENABLE_AOM:-0}"
 AOM_VERSION="${AOM_VERSION:-3.6.1}"
+
 # Webcodecs is not on by default b/c asyncify increases the binary size considerably
 ENABLE_WEBCODECS="${ENABLE_WEBCODECS:-0}"
+
+ENABLE_UNCOMPRESSED="${ENABLE_UNCOMPRESSED:-0}"
+
+# J2K still defunct. OpenJPEG compiles, but library is not picked up by libheif cmake.
+ENABLE_J2K="${ENABLE_J2K:-0}"
+OPENJPEG_VERSION="${OPENJPEG_VERSION:-2.5.4}"
+
 STANDALONE="${STANDALONE:-0}"
 DEBUG="${DEBUG:-0}"
 USE_ES6="${USE_ES6:-0}"
@@ -90,11 +100,44 @@ if [ "$ENABLE_AOM" = "1" ]; then
     LIBRARY_LINKER_FLAGS="$LIBRARY_LINKER_FLAGS -L${AOM_DIR} -laom"
 fi

+CONFIGURE_ARGS_J2K=""
+if [ "$ENABLE_J2K" = "1" ]; then
+    [ -s "openjpeg-${OPENJPEG__VERSION}.tar.gz" ] || curl \
+        -L \
+        -o openjpeg-${OPENJPEG_VERSION}.tar.gz \
+	"https://github.com/uclouvain/openjpeg/archive/refs/tags/v${OPENJPEG_VERSION}.tar.gz"
+    if [ ! -s "openjpeg-${OPENJPEG_VERSION}/bin/libopenjp2.a" ]; then
+        mkdir -p openjpeg-${OPENJPEG_VERSION}/openjpeg-source
+        tar xf openjpeg-${OPENJPEG_VERSION}.tar.gz -C openjpeg-${OPENJPEG_VERSION}/openjpeg-source
+        cd openjpeg-${OPENJPEG_VERSION}
+        emcmake cmake openjpeg-source/openjpeg-${OPENJPEG_VERSION} \
+            -DBUILD_SHARED_LIBS=0 \
+            -DCMAKE_BUILD_TYPE=Release
+
+        emmake make -j${CORES}
+
+        cd ..
+    fi
+
+    J2K_DIR="$(pwd)/openjpeg-${OPENJPEG_VERSION}"
+    CONFIGURE_ARGS_J2K="-DOPENJPEG_INCLUDE_DIR=${J2K_DIR}/openjpeg-source/openjpeg-${OPENJPEG_VERSION}/src/lib/openjp2 -DOPENJPEG_LIBRARY=-L${J2K_DIR}/bin"
+    LIBRARY_LINKER_FLAGS="$LIBRARY_LINKER_FLAGS -L${J2K_DIR}/bin -lopenjp2"
+
+    echo ${J2K_DIR}
+    echo ${CONFIGURE_ARGS_J2K}
+    echo ${LIBRARY_LINKER_FLAGS}
+fi
+
 CONFIGURE_ARGS_WEBCODECS=""
 if [ "$ENABLE_WEBCODECS" = "1" ]; then
     CONFIGURE_ARGS_WEBCODECS="-DWITH_WEBCODECS=ON"
 fi

+CONFIGURE_ARGS_UNCOMPRESSED=""
+if [ "$ENABLE_UNCOMPRESSED" = "1" ]; then
+    CONFIGURE_ARGS_UNCOMPRESSED="-DWITH_UNCOMPRESSED_CODEC=ON"
+fi
+
 EXTRA_EXE_LINKER_FLAGS="-lembind"
 EXTRA_COMPILER_FLAGS=""
 if [ "$STANDALONE" = "1" ]; then
@@ -110,7 +153,9 @@ emcmake cmake ${SRCDIR} $CONFIGURE_ARGS \
     -DCMAKE_EXE_LINKER_FLAGS="${LIBRARY_LINKER_FLAGS} ${EXTRA_EXE_LINKER_FLAGS}" \
     $CONFIGURE_ARGS_LIBDE265 \
     $CONFIGURE_ARGS_AOM \
-    $CONFIGURE_ARGS_WEBCODECS
+    $CONFIGURE_ARGS_WEBCODECS \
+    $CONFIGURE_ARGS_UNCOMPRESSED \
+    $CONFIGURE_ARGS_J2K

 VERBOSE=1 emmake make -j${CORES}