mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-16 02:29:50 +00:00
Benefits:
- newer versions of the libraries
- zlib: 1.2.8 -> 1.2.11
- libpng: 1.6.18beta04 -> 1.6.34
- much fewer dependencies to install (as libs are already in optipng archive and we don't need napa)
- much smaller build thanks to customised versions of zlib and libpng containing only APIs necessary for optipng itself: 238950 -> 177359 bytes
- much faster build thanks to preconfigured libpng and stripped APIs: 2m15s -> 40s
- much simpler build script: 77 -> 46 lines
44 lines
1.2 KiB
Bash
Executable File
44 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
export OPTIMIZE="-Os"
|
|
export PREFIX="/src/build"
|
|
|
|
echo "============================================="
|
|
echo "Compiling optipng"
|
|
echo "============================================="
|
|
(
|
|
cd node_modules/optipng
|
|
CFLAGS="${OPTIMIZE} -Isrc/zlib" emconfigure ./configure --prefix=${PREFIX}
|
|
emmake make
|
|
emmake make install
|
|
mkdir -p ${PREFIX}/lib
|
|
mv ${PREFIX}/bin/optipng ${PREFIX}/lib/liboptipng.so
|
|
)
|
|
echo "============================================="
|
|
echo "Compiling optipng done"
|
|
echo "============================================="
|
|
|
|
echo "============================================="
|
|
echo "Compiling optipng wrapper"
|
|
echo "============================================="
|
|
(
|
|
emcc \
|
|
--bind \
|
|
${OPTIMIZE} \
|
|
-s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME="optipng"' \
|
|
-o "optipng.js" \
|
|
--std=c++11 \
|
|
optipng.cpp \
|
|
${PREFIX}/lib/liboptipng.so
|
|
)
|
|
echo "============================================="
|
|
echo "Compiling optipng wrapper done"
|
|
echo "============================================="
|
|
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "Did you update your docker image?"
|
|
echo "Run \`docker pull trzeci/emscripten-upstream\`"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|