mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-17 11:09:41 +00:00
* Add LTO for C++ builds This didn't have much effect on fastcomp builds, but provides further size savings with new LLVM backend we switched to in #750 (and fixes the MozJPEG size regression from the same PR). In the future we won't need to pass `--llvm-lto 1` explicitly, but latest Emscripten Docker image doesn't contain the Emscripten version with the necessary fixes for this. * Delete build.log Co-authored-by: Jake Archibald <jaffathecake@gmail.com>
55 lines
1.5 KiB
Bash
Executable File
55 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
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 libpng-dev pkg-config
|
|
|
|
echo "============================================="
|
|
echo "Compiling mozjpeg"
|
|
echo "============================================="
|
|
(
|
|
cd node_modules/mozjpeg
|
|
autoreconf -fiv
|
|
emconfigure ./configure --without-simd
|
|
emmake make libjpeg.la -j`nproc`
|
|
)
|
|
echo "============================================="
|
|
echo "Compiling mozjpeg done"
|
|
echo "============================================="
|
|
|
|
echo "============================================="
|
|
echo "Compiling wasm bindings"
|
|
echo "============================================="
|
|
(
|
|
emcc \
|
|
--bind \
|
|
${OPTIMIZE} \
|
|
--closure 1 \
|
|
-s WASM=1 \
|
|
-s ALLOW_MEMORY_GROWTH=1 \
|
|
-s MODULARIZE=1 \
|
|
-s 'EXPORT_NAME="mozjpeg_enc"' \
|
|
-I node_modules/mozjpeg \
|
|
-o ./mozjpeg_enc.js \
|
|
-Wno-deprecated-register \
|
|
-Wno-writable-strings \
|
|
node_modules/mozjpeg/rdswitch.c \
|
|
-x c++ -std=c++11 \
|
|
mozjpeg_enc.cpp \
|
|
node_modules/mozjpeg/.libs/libjpeg.a
|
|
)
|
|
echo "============================================="
|
|
echo "Compiling wasm bindings done"
|
|
echo "============================================="
|
|
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
|
echo "Did you update your docker image?"
|
|
echo "Run \`docker pull trzeci/emscripten-upstream\`"
|
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|