Rebuild local Blender WASM environment and recovery evidence
This commit is contained in:
74
tools/web/configure-blender-native.sh
Executable file
74
tools/web/configure-blender-native.sh
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
source "${repo_root}/tools/web/native-build-env.sh"
|
||||
export PKG_CONFIG_PATH="${repo_root}/tools/web/cmake/pkgconfig:${PKG_CONFIG_PATH:-}"
|
||||
|
||||
: "${CC:=gcc-14}"
|
||||
: "${CXX:=g++-14}"
|
||||
command -v "${CC}" >/dev/null || { echo "missing ${CC}; install GCC 14 or set CC" >&2; exit 1; }
|
||||
command -v "${CXX}" >/dev/null || { echo "missing ${CXX}; install G++ 14 or set CXX" >&2; exit 1; }
|
||||
command -v cmake >/dev/null || { echo "missing cmake" >&2; exit 1; }
|
||||
command -v ninja >/dev/null || { echo "missing ninja" >&2; exit 1; }
|
||||
|
||||
runtime_rpath="${BLENDER_PYTHON_ROOT}/lib"
|
||||
for dependency in openvdb openimageio opencolorio openexr imath openjph tbb zstd fmt pugixml; do
|
||||
if [[ -d "${BLENDER_DEPS_ROOT}/${dependency}/lib" ]]; then
|
||||
runtime_rpath+=";${BLENDER_DEPS_ROOT}/${dependency}/lib"
|
||||
fi
|
||||
done
|
||||
|
||||
cmake_args=(
|
||||
-S "${BLENDER_SOURCE_DIR}"
|
||||
-B "${BLENDER_BUILD_DIR}"
|
||||
-G Ninja
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DCMAKE_C_COMPILER="$(command -v "${CC}")"
|
||||
-DCMAKE_CXX_COMPILER="$(command -v "${CXX}")"
|
||||
-DCMAKE_BUILD_RPATH="${runtime_rpath}"
|
||||
-DCMAKE_INSTALL_RPATH="${runtime_rpath}"
|
||||
-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
|
||||
-DWITH_LIBS_PRECOMPILED=OFF
|
||||
-DCMAKE_PREFIX_PATH="${BLENDER_DEPS_ROOT}/openimageio;${BLENDER_DEPS_ROOT}/opencolorio;${BLENDER_DEPS_ROOT}/openexr;${BLENDER_DEPS_ROOT}/imath;${BLENDER_DEPS_ROOT}/openjph;${BLENDER_DEPS_ROOT}/fmt;${BLENDER_DEPS_ROOT}/tbb;${BLENDER_DEPS_ROOT}/zstd;${BLENDER_DEPS_ROOT}/pugixml;${BLENDER_DEPS_ROOT}/openvdb"
|
||||
-DWITH_INSTALL_PORTABLE=ON
|
||||
-DWITH_PYTHON=ON
|
||||
-DWITH_PYTHON_NUMPY=ON
|
||||
-DWITH_PYTHON_INSTALL_NUMPY=ON
|
||||
-DWITH_PYTHON_INSTALL_REQUESTS=ON
|
||||
-DWITH_PYTHON_INSTALL_ZSTANDARD=ON
|
||||
-DWITH_SYSTEM_GFLAGS=ON
|
||||
-DWITH_SYSTEM_GLOG=ON
|
||||
-DWITH_CODEC_FFMPEG=ON
|
||||
-DOpenColorIO_DIR="${BLENDER_DEPS_ROOT}/opencolorio/lib/cmake/OpenColorIO"
|
||||
-DOpenImageIO_DIR="${BLENDER_DEPS_ROOT}/openimageio/lib/cmake/OpenImageIO"
|
||||
-DOpenEXR_DIR="${BLENDER_DEPS_ROOT}/openexr/lib/cmake/OpenEXR"
|
||||
-Dfmt_DIR="${BLENDER_DEPS_ROOT}/fmt/lib/cmake/fmt"
|
||||
-DVULKAN_INCLUDE_DIRS="${BLENDER_DEPS_ROOT}/vulkan_headers/include"
|
||||
-DSHADERC_ROOT_DIR="${BLENDER_DEPS_ROOT}/shaderc"
|
||||
-DSHADERC_INCLUDE_DIRS:PATH="${BLENDER_DEPS_ROOT}/shaderc/include"
|
||||
-DSHADERC_LIBRARIES:STRING="${BLENDER_DEPS_ROOT}/shaderc/lib/libshaderc_combined.a;${BLENDER_DEPS_ROOT}/shaderc/lib/libSPIRV-Tools-opt.a;${BLENDER_DEPS_ROOT}/shaderc/lib/libSPIRV-Tools.a"
|
||||
)
|
||||
|
||||
# Python 3.13 is required by the Blender 5.2 source tree. A source-built
|
||||
# interpreter can be supplied through BLENDER_PYTHON_ROOT; otherwise CMake
|
||||
# reports the missing development files without silently selecting Python 3.12.
|
||||
if [[ -x "${BLENDER_PYTHON_ROOT}/bin/python3.13" && -f "${BLENDER_PYTHON_ROOT}/lib/libpython3.13.so" ]]; then
|
||||
cmake_args+=(
|
||||
-DPYTHON_VERSION=3.13
|
||||
-DPYTHON_EXECUTABLE="${BLENDER_PYTHON_ROOT}/bin/python3.13"
|
||||
-DPYTHON_LIBRARY="${BLENDER_PYTHON_ROOT}/lib/libpython3.13.so"
|
||||
-DPYTHON_LIBPATH="${BLENDER_PYTHON_ROOT}/lib"
|
||||
-DPYTHON_INCLUDE_DIR="${BLENDER_PYTHON_ROOT}/include/python3.13"
|
||||
-DPYTHON_INCLUDE_CONFIG_DIR="${BLENDER_PYTHON_ROOT}/include/python3.13"
|
||||
)
|
||||
else
|
||||
echo "BLENDER_PYTHON_ROOT must contain a source-built Python 3.13 installation:" >&2
|
||||
echo " ${BLENDER_PYTHON_ROOT}/bin/python3.13" >&2
|
||||
echo " ${BLENDER_PYTHON_ROOT}/lib/libpython3.13.so" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
cmake "${cmake_args[@]}" "$@"
|
||||
printf 'native-configured source=%s build=%s compiler=%s\n' \
|
||||
"${BLENDER_SOURCE_DIR}" "${BLENDER_BUILD_DIR}" "${CXX}"
|
||||
Reference in New Issue
Block a user