orca/samples/clock/build.sh

38 lines
1.2 KiB
Bash
Raw Normal View History

2023-08-22 23:04:49 +00:00
#!/bin/bash
set -euo pipefail
2023-09-23 22:04:13 +00:00
# The following code checks if you have the necessary programs to compile the samples.
# This code exists to improve the experience of first-time Orca users and can
# be safely deleted in your own projects if you wish.
if [ -f ../../scripts/sample_build_check.py ]; then
python3 ../../scripts/sample_build_check.py
2023-08-22 23:04:49 +00:00
else
2023-09-23 22:04:13 +00:00
echo "Could not check if you have the necessary tools to build the Orca samples."
echo "If you have copied this script to your own project, you can delete this code."
2023-08-22 23:04:49 +00:00
fi
ORCA_DIR=../..
STDLIB_DIR=$ORCA_DIR/src/libc-shim
2023-08-22 23:04:49 +00:00
# common flags to build wasm modules
2023-08-22 23:04:49 +00:00
wasmFlags="--target=wasm32 \
--no-standard-libraries \
-mbulk-memory \
-g -O2 \
2023-08-22 23:04:49 +00:00
-D__ORCA__ \
-Wl,--no-entry \
-Wl,--export-dynamic \
-isystem $STDLIB_DIR/include \
-I $ORCA_DIR/src \
-I $ORCA_DIR/src/ext"
2023-08-22 23:04:49 +00:00
# build orca core as wasm module
clang $wasmFlags -Wl,--relocatable -o ./liborca.a $ORCA_DIR/src/orca.c $STDLIB_DIR/src/*.c
2023-08-22 23:04:49 +00:00
# build sample as wasm module and link it with the orca module
clang $wasmFlags -L . -lorca -o module.wasm src/main.c
# create app directory and copy files into it
orca bundle --orca-dir $ORCA_DIR --name Clock --icon icon.png --resource-dir data module.wasm