Files
emp-wasm/scripts/build_wasm.sh
2025-02-10 17:10:57 +11:00

55 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
ARG1=$1
set -euo pipefail
# Variables
MBEDTLS_DIR="./external/mbedtls"
BUILD_DIR="$MBEDTLS_DIR/build/library"
if [ ! -d "$BUILD_DIR" ]; then
echo "Please run ./scripts/build_mbedtls.sh first"
exit 1
fi
mkdir -p build
CONDITIONAL_OPTS=""
if [ "$ARG1" == "" ]; then
CONDITIONAL_OPTS="-O3"
elif [ "$ARG1" == "debug" ]; then
CONDITIONAL_OPTS="-g -D__debug"
else
echo "Invalid argument"
exit 1
fi
# Emscripten build
em++ programs/jslib.cpp -sASYNCIFY -o build/jslib.js \
$CONDITIONAL_OPTS \
-Wall \
-Wextra \
-pedantic \
-Wno-unused-parameter \
-I ./src/cpp/ \
-I "$MBEDTLS_DIR/include" \
-L "$BUILD_DIR" \
-lmbedtls \
-lmbedcrypto \
-lmbedx509 \
-lembind \
-sALLOW_MEMORY_GROWTH \
-s SINGLE_FILE=1 \
-s ENVIRONMENT='web,worker,node' \
-sNO_DISABLE_EXCEPTION_CATCHING \
-sASSERTIONS=1 \
-sSTACK_SIZE=8388608 \
-sASYNCIFY_STACK_SIZE=16384 \
-sEXPORTED_FUNCTIONS=['_js_malloc','_main'] \
-sEXPORTED_RUNTIME_METHODS=['HEAPU8','setValue'] \
-s MODULARIZE=1 \
-s EXPORT_ES6=1 \
-s EXPORT_NAME=createModule