Codecs cleanup (#189)

* Update imagequant processor

* Update mozjpeg encoder

* Update optipng encoder

* Update webp decoder

* Update webp encoder

* Remove old codec build tasks

* Add warning about docker image updates
This commit is contained in:
Surma
2018-10-12 10:53:33 +01:00
committed by Jake Archibald
parent d2f60baef9
commit 577c77cc30
19 changed files with 177 additions and 39 deletions

48
codecs/imagequant/build.sh Executable file
View File

@@ -0,0 +1,48 @@
#!/bin/bash
set -e
export OPTIMIZE="-Os"
export LDFLAGS="${OPTIMIZE}"
export CFLAGS="${OPTIMIZE}"
export CPPFLAGS="${OPTIMIZE}"
echo "============================================="
echo "Compiling libimagequant"
echo "============================================="
(
emcc \
--bind \
${OPTIMIZE} \
-s ALLOW_MEMORY_GROWTH=1 \
-s MODULARIZE=1 \
-s 'EXPORT_NAME="imagequant"' \
-I node_modules/libimagequant \
--std=c99 \
-c \
node_modules/libimagequant/{libimagequant,pam,mediancut,blur,mempool,kmeans,nearest}.c
)
echo "============================================="
echo "Compiling wasm module"
echo "============================================="
(
emcc \
--bind \
${OPTIMIZE} \
-s ALLOW_MEMORY_GROWTH=1 \
-s MODULARIZE=1 \
-s 'EXPORT_NAME="imagequant"' \
-I node_modules/libimagequant \
-o ./imagequant.js \
--std=c++11 *.o \
-x c++ \
imagequant.cpp
)
echo "============================================="
echo "Compiling wasm module done"
echo "============================================="
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "Did you update your docker image?"
echo "Run \`docker pull trzeci/emscripten\`"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -2,11 +2,7 @@
"name": "imagequant", "name": "imagequant",
"scripts": { "scripts": {
"install": "napa", "install": "napa",
"build": "npm run build:wasm", "build": "docker run --rm -v $(pwd):/src trzeci/emscripten ./build.sh"
"build:wasm:lib": "docker run --rm -v $(pwd):/src trzeci/emscripten emcc --bind -O3 -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME=\"imagequant\"' -I node_modules/libimagequant --std=c99 node_modules/libimagequant/{libimagequant,pam,mediancut,blur,mempool,kmeans,nearest}.c -c ",
"build:wasm:module": "docker run --rm -v $(pwd):/src trzeci/emscripten emcc --bind -O3 -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME=\"imagequant\"' -I node_modules/libimagequant -o ./imagequant.js --std=c++11 *.o -x c++ imagequant.cpp",
"build:wasm": "npm run build:wasm:lib && npm run build:wasm:module"
}, },
"napa": { "napa": {
"libimagequant": "ImageOptim/libimagequant#2.12.1" "libimagequant": "ImageOptim/libimagequant#2.12.1"

View File

@@ -2,6 +2,11 @@
set -e set -e
export OPTIMIZE="-Os"
export LDFLAGS="${OPTIMIZE}"
export CFLAGS="${OPTIMIZE}"
export CPPFLAGS="${OPTIMIZE}"
apt-get update apt-get update
apt-get install -qqy autoconf libtool libpng-dev pkg-config apt-get install -qqy autoconf libtool libpng-dev pkg-config
@@ -21,19 +26,28 @@ echo "============================================="
echo "=============================================" echo "============================================="
echo "Compiling wasm bindings" echo "Compiling wasm bindings"
echo "=============================================" echo "============================================="
emcc \ (
--bind -O3 \ emcc \
-s WASM=1 \ --bind \
-s ALLOW_MEMORY_GROWTH=1 \ ${OPTIMIZE} \
-s MODULARIZE=1 \ -s WASM=1 \
-s 'EXPORT_NAME="mozjpeg_enc"' \ -s ALLOW_MEMORY_GROWTH=1 \
-I node_modules/mozjpeg \ -s MODULARIZE=1 \
-o ./mozjpeg_enc.js \ -s 'EXPORT_NAME="mozjpeg_enc"' \
-Wno-deprecated-register -Wno-writable-strings \ -I node_modules/mozjpeg \
node_modules/mozjpeg/rdswitch.c \ -o ./mozjpeg_enc.js \
-x c++ -std=c++11 \ -Wno-deprecated-register \
mozjpeg_enc.cpp \ -Wno-writable-strings \
node_modules/mozjpeg/.libs/libjpeg.a node_modules/mozjpeg/rdswitch.c \
-x c++ -std=c++11 \
mozjpeg_enc.cpp \
node_modules/mozjpeg/.libs/libjpeg.a
)
echo "=============================================" echo "============================================="
echo "Compiling wasm bindings done" echo "Compiling wasm bindings done"
echo "=============================================" echo "============================================="
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "Did you update your docker image?"
echo "Run \`docker pull trzeci/emscripten\`"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -2,10 +2,11 @@
set -e set -e
export OPTIMIZE="-Os"
export PREFIX="/src/build" export PREFIX="/src/build"
export CFLAGS="-I${PREFIX}/include/" export CFLAGS="${OPTIMIZE} -I${PREFIX}/include/"
export CPPFLAGS="-I${PREFIX}/include/" export CPPFLAGS="${OPTIMIZE} -I${PREFIX}/include/"
export LDFLAGS="-L${PREFIX}/lib/" export LDFLAGS="${OPTIMIZE} -L${PREFIX}/lib/"
apt-get update apt-get update
apt-get install -qqy autoconf libtool apt-get install -qqy autoconf libtool
@@ -42,7 +43,7 @@ echo "Compiling optipng"
echo "=============================================" echo "============================================="
( (
emcc \ emcc \
-O3 \ ${OPTIMIZE} \
-Wno-implicit-function-declaration \ -Wno-implicit-function-declaration \
-I ${PREFIX}/include \ -I ${PREFIX}/include \
-I node_modules/optipng/src/opngreduc \ -I node_modules/optipng/src/opngreduc \
@@ -60,7 +61,8 @@ echo "============================================="
node_modules/optipng/src/optipng/*.c node_modules/optipng/src/optipng/*.c
emcc \ emcc \
--bind -O3 \ --bind \
${OPTIMIZE} \
-s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME="optipng"' \ -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME="optipng"' \
-I ${PREFIX}/include \ -I ${PREFIX}/include \
-I node_modules/optipng/src/opngreduc \ -I node_modules/optipng/src/opngreduc \
@@ -78,3 +80,8 @@ echo "============================================="
echo "=============================================" echo "============================================="
echo "Compiling optipng done" echo "Compiling optipng done"
echo "=============================================" echo "============================================="
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "Did you update your docker image?"
echo "Run \`docker pull trzeci/emscripten\`"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

File diff suppressed because one or more lines are too long

Binary file not shown.

34
codecs/webp_dec/build.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/bash
set -e
export OPTIMIZE="-Os"
export LDFLAGS="${OPTIMIZE}"
export CFLAGS="${OPTIMIZE}"
export CPPFLAGS="${OPTIMIZE}"
echo "============================================="
echo "Compiling wasm bindings"
echo "============================================="
(
emcc \
${OPTIMIZE} \
--bind \
-s ALLOW_MEMORY_GROWTH=1 \
-s MODULARIZE=1 \
-s 'EXPORT_NAME="webp_dec"' \
--std=c++11 \
-I node_modules/libwebp \
-o ./webp_dec.js \
node_modules/libwebp/src/{dec,dsp,demux,enc,mux,utils}/*.c \
-x c++ \
webp_dec.cpp
)
echo "============================================="
echo "Compiling wasm bindings done"
echo "============================================="
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "Did you update your docker image?"
echo "Run \`docker pull trzeci/emscripten\`"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

View File

@@ -2,7 +2,7 @@
"name": "webp_dec", "name": "webp_dec",
"scripts": { "scripts": {
"install": "napa", "install": "napa",
"build": "docker run --rm -v $(pwd):/src trzeci/emscripten emcc -O3 --bind -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME=\"webp_dec\"' --std=c++11 -I node_modules/libwebp -o ./webp_dec.js node_modules/libwebp/src/{dec,dsp,demux,enc,mux,utils}/*.c -x c++ webp_dec.cpp" "build": "docker run --rm -v $(pwd):/src trzeci/emscripten ./build.sh"
}, },
"napa": { "napa": {
"libwebp": "webmproject/libwebp#v1.0.0" "libwebp": "webmproject/libwebp#v1.0.0"

File diff suppressed because one or more lines are too long

Binary file not shown.

34
codecs/webp_enc/build.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/bash
set -e
export OPTIMIZE="-Os"
export LDFLAGS="${OPTIMIZE}"
export CFLAGS="${OPTIMIZE}"
export CPPFLAGS="${OPTIMIZE}"
echo "============================================="
echo "Compiling wasm bindings"
echo "============================================="
(
emcc \
${OPTIMIZE} \
--bind \
-s ALLOW_MEMORY_GROWTH=1 \
-s MODULARIZE=1 \
-s 'EXPORT_NAME="webp_enc"' \
--std=c++11 \
-I node_modules/libwebp \
-o ./webp_enc.js \
node_modules/libwebp/src/{dec,dsp,demux,enc,mux,utils}/*.c \
-x c++ \
webp_enc.cpp
)
echo "============================================="
echo "Compiling wasm bindings done"
echo "============================================="
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "Did you update your docker image?"
echo "Run \`docker pull trzeci/emscripten\`"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"

View File

@@ -2,7 +2,7 @@
"name": "webp_enc", "name": "webp_enc",
"scripts": { "scripts": {
"install": "napa", "install": "napa",
"build": "docker run --rm -v $(pwd):/src trzeci/emscripten emcc --bind -O3 -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s MODULARIZE=1 -s 'EXPORT_NAME=\"webp_enc\"' -I node_modules/libwebp -o ./webp_enc.js -x c node_modules/libwebp/src/{dec,dsp,demux,enc,mux,utils}/*.c -x c++ -std=c++11 webp_enc.cpp" "build": "docker run --rm -v $(pwd):/src trzeci/emscripten ./build.sh"
}, },
"napa": { "napa": {
"libwebp": "webmproject/libwebp#v1.0.0" "libwebp": "webmproject/libwebp#v1.0.0"

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -4,8 +4,6 @@
"version": "0.0.0", "version": "0.0.0",
"license": "apache-2.0", "license": "apache-2.0",
"scripts": { "scripts": {
"build:mozjpeg_enc": "cd codecs/mozjpeg_enc && npm run build",
"build:codecs": "npm run build:mozjpeg_enc",
"start": "webpack serve --host 0.0.0.0 --hot", "start": "webpack serve --host 0.0.0.0 --hot",
"build": "webpack -p", "build": "webpack -p",
"lint": "tslint -c tslint.json -t verbose 'src/**/*.{ts,tsx,js,jsx}'", "lint": "tslint -c tslint.json -t verbose 'src/**/*.{ts,tsx,js,jsx}'",