mirror of
https://github.com/penpot/penpot.git
synced 2025-06-18 01:11:39 +02:00
58 lines
1.7 KiB
Bash
58 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
if [ "$NODE_ENV" = "production" ]; then
|
|
export _BUILD_MODE="release";
|
|
else
|
|
export _BUILD_MODE=${1:-debug};
|
|
fi
|
|
|
|
# 256 MB of initial heap to perform less
|
|
# initial calls to memory grow.
|
|
EM_INITIAL_HEAP=$((256 * 1024 * 1024))
|
|
|
|
# 1.0 doubles the heap on every growth.
|
|
EM_MEMORY_GROWTH_GEOMETRIC_STEP="0.8"
|
|
|
|
# Malloc implementation to use.
|
|
# - dlmalloc: a powerful general-purpose malloc.
|
|
# - emmalloc: a simple and compact malloc designed for emscripten.
|
|
# - emmalloc-debug: use emmalloc and add extra assertion checks.
|
|
# - emmalloc-memvalidate: use emmalloc with assertions+heap consistency checking.
|
|
# - emmalloc-verbose: use emmalloc with assertions + verbose logging.
|
|
# - emmalloc-memvalidate-verbose: use emmalloc with assertions + heap consistency checking + verbose logging.
|
|
# Default: dlmalloc
|
|
EM_MALLOC="dlmalloc"
|
|
|
|
EMCC_CFLAGS="--no-entry \
|
|
--js-library src/js/wapi.js \
|
|
-sASSERTIONS=1 \
|
|
-sALLOW_TABLE_GROWTH=1 \
|
|
-sALLOW_MEMORY_GROWTH=1 \
|
|
-sINITIAL_HEAP=$EM_INITIAL_HEAP \
|
|
-sMEMORY_GROWTH_GEOMETRIC_STEP=$EM_MEMORY_GROWTH_GEOMETRIC_STEP \
|
|
-sENVIRONMENT=web \
|
|
-sERROR_ON_UNDEFINED_SYMBOLS=0 \
|
|
-sMAX_WEBGL_VERSION=2 \
|
|
-sMODULARIZE=1 \
|
|
-sEXPORT_NAME=createRustSkiaModule \
|
|
-sEXPORTED_RUNTIME_METHODS=GL,stringToUTF8,HEAPU8,HEAPU32,HEAPF32 \
|
|
-sEXPORT_ES6=1"
|
|
|
|
export EM_CACHE="/tmp/emsdk_cache";
|
|
|
|
_CARGO_PARAMS="${@:2}";
|
|
|
|
if [ "$_BUILD_MODE" = "release" ]; then
|
|
_CARGO_PARAMS="--release $_CARGO_PARAMS"
|
|
EMCC_CFLAGS="-Os $EMCC_CFLAGS"
|
|
else
|
|
# TODO: Extra parameters that could be good to look into:
|
|
# -gseparate-dwarf
|
|
# -gsplit-dwarf
|
|
# -gsource-map
|
|
EMCC_CFLAGS="-g $EMCC_CFLAGS -sVERBOSE=1 -sMALLOC=$EM_MALLOC"
|
|
fi
|
|
|
|
export EMCC_CFLAGS;
|
|
export _CARGO_PARAMS;
|
|
|