blob: 74b7eeb7b2fdc9fb1150c56ae751bab262b68c8d [file] [log] [blame]
#!/usr/bin/env bash
set -e
set -o pipefail
ARGON_JS_EXTRA_C_FLAGS=""
if [[ "$ARGON_JS_BUILD_BUILD_WITH_SIMD" == "1" ]]; then
ARGON_JS_EXTRA_C_FLAGS="-msimd128 -msse2"
fi
cmake \
-DOUTPUT_NAME="argon2" \
-DCMAKE_TOOLCHAIN_FILE="$EMCC_SDK_PATH/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake" \
-DCMAKE_VERBOSE_MAKEFILE=OFF \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_C_FLAGS="-O $ARGON_JS_EXTRA_C_FLAGS" \
-DCMAKE_EXE_LINKER_FLAGS="-O3 \
-s NO_FILESYSTEM=1 \
-s 'EXPORTED_FUNCTIONS=[\"_argon2_hash\",\"_argon2_hash_ext\",\"_argon2_verify\",\"_argon2_verify_ext\",\"_argon2_error_message\",\"_argon2_encodedlen\",\"_malloc\",\"_free\"]' \
-s 'EXPORTED_RUNTIME_METHODS=[\"UTF8ToString\",\"allocate\",\"ALLOC_NORMAL\"]' \
-s DEMANGLE_SUPPORT=0 \
-s ASSERTIONS=0 \
-s NO_EXIT_RUNTIME=1 \
-s TOTAL_MEMORY=16MB \
-s BINARYEN_MEM_MAX=2147418112 \
-s ALLOW_MEMORY_GROWTH=1 \
-s WASM=1" \
.
cmake --build .
shasum dist/argon2.js
shasum dist/argon2.wasm
perl -pi -e 's/"argon2.js.mem"/null/g' dist/argon2.js
perl -pi -e 's/$/if(typeof module!=="undefined")module.exports=Module;Module.unloadRuntime=function(){if(typeof self!=="undefined"){delete self.Module}Module=jsModule=wasmMemory=wasmTable=asm=buffer=HEAP8=HEAPU8=HEAP16=HEAPU16=HEAP32=HEAPU32=HEAPF32=HEAPF64=undefined;if(typeof module!=="undefined"){delete module.exports}};/' dist/argon2.js
perl -pi -e 's/typeof Module!=="undefined"\?Module:\{};/typeof self!=="undefined"&&typeof self.Module!=="undefined"?self.Module:{};var jsModule=Module;/g' dist/argon2.js
perl -pi -e 's/receiveInstantiatedSource\(output\)\{/receiveInstantiatedSource(output){Module=jsModule;if(typeof self!=="undefined")self.Module=Module;/g' dist/argon2.js