mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-14 01:37:26 +00:00
- Store Emscripten cache inside node_modules/.em_cache. Docker image ships without LTO libs, so Emscripten has to rebuild stdlibs on every build otherwise. - Merge webp_enc + webp_dec build scripts. Core libwebp library is same in both cases, so there's no point in storing and building two copies of it.
72 lines
1.8 KiB
Bash
72 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
export EM_CACHE="${PWD}/node_modules/.em_cache"
|
|
export OPTIMIZE="-Os -flto --llvm-lto 1"
|
|
export LDFLAGS="${OPTIMIZE}"
|
|
export CFLAGS="${OPTIMIZE}"
|
|
export CPPFLAGS="${OPTIMIZE}"
|
|
apt-get update
|
|
apt-get install -qqy autoconf libtool pkg-config
|
|
|
|
echo "============================================="
|
|
echo "Compiling libwebp"
|
|
echo "============================================="
|
|
test -n "$SKIP_LIBWEBP" || (
|
|
cd node_modules/libwebp
|
|
autoreconf -iv
|
|
emconfigure ./configure -C \
|
|
--disable-libwebpdemux \
|
|
--disable-wic \
|
|
--disable-gif \
|
|
--disable-tiff \
|
|
--disable-jpeg \
|
|
--disable-png \
|
|
--disable-sdl \
|
|
--disable-gl \
|
|
--disable-threading \
|
|
--disable-neon-rtcd \
|
|
--disable-neon \
|
|
--disable-sse2 \
|
|
--disable-sse4.1
|
|
emmake make -j`nproc`
|
|
)
|
|
echo "============================================="
|
|
echo "Compiling wasm bindings"
|
|
echo "============================================="
|
|
(
|
|
emcc \
|
|
${OPTIMIZE} \
|
|
--closure 1 \
|
|
--bind \
|
|
-s ALLOW_MEMORY_GROWTH=1 \
|
|
-s MODULARIZE=1 \
|
|
-s 'EXPORT_NAME="webp_dec"' \
|
|
-I node_modules/libwebp \
|
|
-o dec/webp_dec.js \
|
|
dec/webp_dec.cpp \
|
|
node_modules/libwebp/src/.libs/libwebp.a
|
|
)
|
|
(
|
|
emcc \
|
|
${OPTIMIZE} \
|
|
--closure 1 \
|
|
--bind \
|
|
-s ALLOW_MEMORY_GROWTH=1 \
|
|
-s MODULARIZE=1 \
|
|
-s 'EXPORT_NAME="webp_enc"' \
|
|
-I node_modules/libwebp \
|
|
-o enc/webp_enc.js \
|
|
enc/webp_enc.cpp \
|
|
node_modules/libwebp/src/.libs/libwebp.a
|
|
)
|
|
echo "============================================="
|
|
echo "Compiling wasm bindings done"
|
|
echo "============================================="
|
|
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "Did you update your docker image?"
|
|
echo "Run \`docker pull trzeci/emscripten-upstream\`"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|