2023-07-14 04:38:32 +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-07-14 04:38:32 +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-07-14 04:38:32 +00:00
|
|
|
fi
|
|
|
|
|
2023-08-09 11:06:32 +00:00
|
|
|
ORCA_DIR=../..
|
2023-08-29 03:15:16 +00:00
|
|
|
STDLIB_DIR=$ORCA_DIR/src/libc-shim
|
2023-08-09 11:06:32 +00:00
|
|
|
|
2023-09-25 03:15:44 +00:00
|
|
|
# common flags to build wasm modules
|
2023-07-14 04:38:32 +00:00
|
|
|
wasmFlags="--target=wasm32 \
|
2023-07-15 07:15:07 +00:00
|
|
|
--no-standard-libraries \
|
|
|
|
-mbulk-memory \
|
2023-08-29 03:15:16 +00:00
|
|
|
-g -O2 \
|
2023-07-15 07:15:07 +00:00
|
|
|
-D__ORCA__ \
|
2023-08-29 03:15:16 +00:00
|
|
|
-Wl,--no-entry \
|
|
|
|
-Wl,--export-dynamic \
|
|
|
|
-isystem $STDLIB_DIR/include \
|
|
|
|
-I $ORCA_DIR/src \
|
|
|
|
-I $ORCA_DIR/src/ext"
|
2023-07-14 04:38:32 +00:00
|
|
|
|
2023-09-25 03:15:44 +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-07-14 04:38:32 +00:00
|
|
|
|
2023-09-25 03:15:44 +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
|
2023-08-29 03:15:16 +00:00
|
|
|
orca bundle --orca-dir $ORCA_DIR --name UI --resource-dir data module.wasm
|