53 lines
2.4 KiB
Bash
Executable File
53 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
single_build_dir="${WEB_ENGINE_SINGLE_BUILD_DIR:-${repo_root}/build_web-single}"
|
|
pthread_build_dir="${WEB_ENGINE_PTHREAD_BUILD_DIR:-${repo_root}/build_web-pthread}"
|
|
public_root="${WEB_ENGINE_PUBLIC_ROOT:-${repo_root}/web/app/public}"
|
|
manifest_path="${WEB_ENGINE_MANIFEST_PATH:-${public_root}/engine-manifest.json}"
|
|
|
|
if [[ "$(realpath -m "${single_build_dir}")" == "$(realpath -m "${pthread_build_dir}")" ]]; then
|
|
echo "single and pthread variants must come from independent build directories" >&2
|
|
exit 1
|
|
fi
|
|
|
|
for build_dir in "${single_build_dir}" "${pthread_build_dir}"; do
|
|
test -s "${build_dir}/web_engine.js"
|
|
test -s "${build_dir}/web_engine.wasm"
|
|
done
|
|
test -s "${manifest_path}"
|
|
|
|
staging_dir="$(mktemp -d "${TMPDIR:-/tmp}/blender-web-engine-install.XXXXXX")"
|
|
trap 'rm -rf "${staging_dir}"' EXIT
|
|
for variant in single pthread; do
|
|
mkdir -p "${staging_dir}/vendor/blender/${variant}"
|
|
done
|
|
cp "${single_build_dir}/web_engine.js" "${staging_dir}/vendor/blender/single/web_engine.js"
|
|
cp "${single_build_dir}/web_engine.wasm" "${staging_dir}/vendor/blender/single/web_engine.wasm"
|
|
cp "${pthread_build_dir}/web_engine.js" "${staging_dir}/vendor/blender/pthread/web_engine.js"
|
|
cp "${pthread_build_dir}/web_engine.wasm" "${staging_dir}/vendor/blender/pthread/web_engine.wasm"
|
|
cp "${manifest_path}" "${staging_dir}/engine-manifest.json"
|
|
|
|
node "${repo_root}/tools/web/update-engine-manifest.mjs" \
|
|
"${staging_dir}/engine-manifest.json" \
|
|
"${staging_dir}/vendor/blender/single" \
|
|
"${staging_dir}/vendor/blender/pthread"
|
|
node "${repo_root}/tools/web/check-manifest-assets.mjs" \
|
|
"${staging_dir}/engine-manifest.json" "${staging_dir}"
|
|
|
|
for variant in single pthread; do
|
|
mkdir -p "${public_root}/vendor/blender/${variant}"
|
|
install -m 0644 "${staging_dir}/vendor/blender/${variant}/web_engine.js" \
|
|
"${public_root}/vendor/blender/${variant}/web_engine.js"
|
|
install -m 0644 "${staging_dir}/vendor/blender/${variant}/web_engine.wasm" \
|
|
"${public_root}/vendor/blender/${variant}/web_engine.wasm"
|
|
done
|
|
install -m 0644 "${staging_dir}/engine-manifest.json" "${manifest_path}"
|
|
|
|
sha256sum \
|
|
"${public_root}/vendor/blender/single/web_engine.js" \
|
|
"${public_root}/vendor/blender/single/web_engine.wasm" \
|
|
"${public_root}/vendor/blender/pthread/web_engine.js" \
|
|
"${public_root}/vendor/blender/pthread/web_engine.wasm"
|