mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-05 23:41:44 +00:00
42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
set -ex
|
|
|
|
# Script is assuming that it will be possible to execute it multiple times
|
|
# therefore we're clearing venv each time and ignoring existing 'emsdk' folder.
|
|
|
|
# Install uv.
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
uv venv --python 3.13 --clear
|
|
source .venv/bin/activate
|
|
|
|
# Install pyodide cross build environment.
|
|
# Instructions: https://pyodide.org/en/stable/development/building-packages.html
|
|
uv pip install pyodide-build
|
|
# `uv run` is required, so xbuildenv would skip using `pip`.
|
|
uv run pyodide xbuildenv install
|
|
|
|
# Emscripten doesn't come with xbuildenv.
|
|
if [ ! -d emsdk ]; then
|
|
git clone https://github.com/emscripten-core/emsdk
|
|
fi
|
|
pushd emsdk
|
|
PYODIDE_EMSCRIPTEN_VERSION=$(pyodide config get emscripten_version)
|
|
./emsdk install ${PYODIDE_EMSCRIPTEN_VERSION}
|
|
./emsdk activate ${PYODIDE_EMSCRIPTEN_VERSION}
|
|
source emsdk_env.sh
|
|
which emcc
|
|
popd
|
|
|
|
mkdir -p packages/ifcopenshell
|
|
VERSION=`cat IfcOpenShell/VERSION`
|
|
cp IfcOpenShell/pyodide/meta.yaml packages/ifcopenshell
|
|
sed -i s/0.8.0/$VERSION/g packages/ifcopenshell/meta.yaml
|
|
|
|
# Use custom build ifcopenshell directory in build-all to make caching simpler
|
|
# Otherwise pyodide build path typically includes package version, so cached cmake configs might break.
|
|
export BUILD_DIR=`readlink -f ifcopenshell_build`
|
|
|
|
# Use build-recipes-no-deps first, so logs would be printed to stdout.
|
|
pyodide build-recipes-no-deps ifcopenshell
|
|
pyodide build-recipes ifcopenshell --install
|